module Roda::RodaPlugins::RenderEach::InstanceMethods
def render_each(enum, template, opts=(no_opts = true; optimized_template = _cached_render_each_template_method(template); OPTS), &block)
inside the template. An explicit +nil+ value does not
:local :: The local variable to use for the current enum value
Additional options supported:
given opts. The template and options hash are passed to +render+.
For each value in enum, render the given template using the
def render_each(enum, template, opts=(no_opts = true; optimized_template = _cached_render_each_template_method(template); OPTS), &block) if optimized_template return _optimized_render_each(enum, optimized_template, render_each_default_local(template), {}, &block) elsif opts.has_key?(:local) as = opts[:local] else as = render_each_default_local(template) if no_opts && optimized_template.nil? && (optimized_template = _optimized_render_method_for_locals(template, (locals = {as=>nil}))) return _optimized_render_each(enum, optimized_template, as, locals, &block) end end if as opts = opts.dup if locals opts[:locals] = locals else locals = opts[:locals] = if locals = opts[:locals] Hash[locals] else {} end locals[as] = nil end if (opts.keys - ALLOWED_KEYS).empty? && (optimized_template = _optimized_render_method_for_locals(template, locals)) return _optimized_render_each(enum, optimized_template, as, locals, &block) end end if defined?(yield) enum.each do |v| locals[as] = v if as yield render_template(template, opts) end nil else enum.map do |v| locals[as] = v if as render_template(template, opts) end.join end end