Yielding in ERb Templates
Just like in Rails:
require 'erb'
template = ERB.new <<-TEMPLATE
This is a template from <%= @context %> with yield:
<%= yield %>
<%= yield :one, :two, :three %>
Text after yield
TEMPLATE
class Context
def initialize
@context = "context"
end
def get_binding
binding
end
def handle_yield(args)
"Yielding with args: #{args.inspect}"
end
end
ctx = Context.new
template.run(ctx.get_binding{|*args| ctx.handle_yield(args)})