Sha256: c42c5f0a4524e4a04e7b2f1fbba2df47eea4a6ebcf922a04ae5a6c4720f16847

Contents?: true

Size: 858 Bytes

Versions: 2

Compression:

Stored size: 858 Bytes

Contents

module PufferPages
  module Liquid
    module Tags

      class RenderSnippet < ::Liquid::Tag
        Syntax = /^(#{::Liquid::QuotedFragment})/

        def initialize(tag_name, markup, tokens)
          if markup =~ Syntax
            @name = $1
          else
            raise SyntaxError.new("Syntax Error in 'render_snippet' - Valid syntax: render_snippet snipper_name")
          end

          super
        end

        def render(context)
          name = context[@name]
          snippet = Snippet.find_by_name(name)
          if snippet
            snippet.render(context)
          else
            raise ArgumentError.new("Argument error in 'render_snippet' - Can not find snippet named '#{name}'")
          end
        end
      end

    end
  end
end

Liquid::Template.register_tag('render_snippet', PufferPages::Liquid::Tags::RenderSnippet)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puffer_pages-0.0.9 lib/puffer_pages/liquid/tags/render_snippet.rb
puffer_pages-0.0.8 lib/puffer_pages/liquid/tags/render_snippet.rb