Sha256: 548e670a88d75a97c977ae25c4bcbc6981ec779d991ef36f64fa00ec8b1d7b7f

Contents?: true

Size: 1.04 KB

Versions: 6

Compression:

Stored size: 1.04 KB

Contents

module Locomotive
  module Builder
    module Liquid
      module Tags

        class Snippet < ::Liquid::Include

          def render(context)
            name = @template_name.gsub(/[\"\']/, '')

            source = context.registers[:mounting_point].snippets[name].try(:source)

            partial = ::Liquid::Template.parse(source)

            variable = context[@variable_name || @template_name[1..-2]]

            context.stack do
              @attributes.each do |key, value|
                context[key] = context[value]
              end

              output = (if variable.is_a?(Array)
                variable.collect do |variable|
                  context[@template_name[1..-2]] = variable
                  partial.render(context)
                end
              else
                context[@template_name[1..-2]] = variable
                partial.render(context)
              end)

              output
            end
          end

        end

        ::Liquid::Template.register_tag('include', Snippet)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
locomotivecms_builder-1.0.0.alpha6 lib/locomotive/builder/liquid/tags/snippet.rb
locomotivecms_builder-1.0.0.alpha5 lib/locomotive/builder/liquid/tags/snippet.rb
locomotivecms_builder-1.0.0.alpha4 lib/locomotive/builder/liquid/tags/snippet.rb
locomotivecms_builder-1.0.0.alpha3 lib/locomotive/builder/liquid/tags/snippet.rb
locomotivecms_builder-1.0.0.alpha2 lib/locomotive/builder/liquid/tags/snippet.rb
locomotivecms_builder-1.0.0.alpha1 lib/locomotive/builder/liquid/tags/snippet.rb