Sha256: f98532b2e0f51b662e34cdd97b0a32d12d08278f4a1196fa90cdce49eb6ee9ba

Contents?: true

Size: 693 Bytes

Versions: 2

Compression:

Stored size: 693 Bytes

Contents

module PufferPages
  module Liquid
    module Tags

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

        def initialize(tag_name, markup, tokens)
          if markup =~ Syntax
            @name = $1
          elsif markup.blank?
            @name = nil
          else
            raise SyntaxError.new("Syntax Error in 'yield' - Valid syntax: yield [content_name]")
          end

          super
        end

        def render(context)
          context.registers[:tracker].register(@name ? "<%= yield :'#{@name}' %>" : "<%= yield %>")
        end
      end

    end
  end
end

Liquid::Template.register_tag('yield', PufferPages::Liquid::Tags::Yield)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puffer_pages-0.1.1 lib/puffer_pages/liquid/tags/yield.rb
puffer_pages-0.1.0 lib/puffer_pages/liquid/tags/yield.rb