“I want to write documents that have some variable parts.”
“I do not want to have lots of strings in my code.”
Creating an html table for each item in an inventory:
<table>
<% @inventory.each do |item| %>
<tr>
<td><%= item.label %></td>
<td><%= item.quantity %></td>
<td><%= link_to "Details", item %></td>
<td><%= link_to "Add", add_item_path(item) %></td>
<td><%= link_to "Remove", item, method: :delete %></td>
</tr>
<% end %>
</table>A template for ntp config:
driftfile /var/lib/ntp/drift
<% @boxes.each do |box| -%>
server <%= box.name -%><%= @ntp_server_suffix %>
<% end -%>
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1renders:
driftfile /var/lib/ntp/drift
server foo.ntp.cluster.org
server bar.ntp.cluster.org
server qux.ntp.cluster.org
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1Dear <%= @employee.name %>,
You need to update your <%= report.type %> reports.
Come on in on <%= Date::DAYNAMES[Date.today.next_day.wday] %> to finish those up.Dear Peter Gibbons,
You need to update your TPS reports. Come on in on Saturday to finish those up.
<%= "Ruby result "+ " is rendered" %><% "Ruby result" + " is NOT rendered" %>Combining printing and non-printing expressions.
<% if @brigade.is_the_best? %>
<%= "The Best!" %>
<% else %>
<%= "Not the best, yet.." %>
<% end %>selfKernel::bindingCreate the template
require 'erubi'
template_content = ("<%= 'A demo ' + foo %>")
template = Erubi::Engine.new(template_content)Assign variables and save context
foo = "bar"
context = Kernel::bindingRender the template
rendered = eval( template.src, context )
puts renderedResult
A demo barTemplate content and variable assignment
require 'erb'
require 'erubis'
require 'erubi'
template_content = ("<%= 'Engine Demo ' + blep %>\n")
blep = "boop"
context = Kernel::bindingRender using different engines.
erb_t = ERB.new(template_content)
erubis_t = Erubis::Eruby.new(template_content)
erubi_t = Erubi::Engine.new(template_content)
erb_rend = erb_t.result(context)
erubis_rend = erubis_t.result(context )
erubi_rend = eval( erubi_t.src, context )
puts erb_rend, erubis_rend, erubi_rendResults
Engine Demo boop
Engine Demo boop
Engine Demo boop<rdf:RDF xmlns:bd="http://example.org/bad/#">
<rdf:Description rdf:about="http://example.org/bad/inputMessage">
<bd:noofparams> <%=parameters.count%> </ot:noofparams>"%>
<bd:params>
<% if parameters.count > 0 %>
<rdf:Seq>
<% parameters.each do |param| %>
<rdf:li> "<%= param['name'] %>" </rdf:li>
<% end %>
</rdf:Seq>
<% end %>
</ot:params>
</rdf:Description> </rdf:RDF>