lib/roda/plugins/render_each.rb in roda-1.3.0 vs lib/roda/plugins/render_each.rb in roda-2.0.0
- old
+ new
@@ -21,10 +21,12 @@
#
# Will render the +foo+ template, but the local variable used inside
# the template will be +bar+. You can use <tt>:local=>nil</tt> to
# not set a local variable inside the template.
module RenderEach
+ OPTS = {}.freeze
+
# Load the render plugin before this plugin, since this plugin
# calls the render method.
def self.load_dependencies(app)
app.plugin :render
end
@@ -34,11 +36,11 @@
# given opts. The template and options hash are passed to +render+.
# Additional options supported:
# :local :: The local variable to use for the current enum value
# inside the template. An explicit +nil+ value does not
# set a local variable. If not set, uses the template name.
- def render_each(enum, template, opts={})
+ def render_each(enum, template, opts=OPTS)
if as = opts.has_key?(:local)
as = opts[:local]
else
as = template.to_s.to_sym
end
@@ -52,10 +54,10 @@
end
end
enum.map do |v|
locals[as] = v if as
- render(template, opts)
+ render_template(template, opts)
end.join
end
end
end