Sha256: 8193006333ccf23d6babec47473f9add5ad2932a26770276ebf096cf3c2a8bf7

Contents?: true

Size: 1.22 KB

Versions: 8

Compression:

Stored size: 1.22 KB

Contents

module Locomotive
  module Builder
    module Liquid
      module Tags
        module Editable
          class Base < ::Liquid::Block

            Syntax = /(#{::Liquid::QuotedFragment})(\s*,\s*#{::Liquid::Expression}+)?/

            def initialize(tag_name, markup, tokens, context)
              if markup =~ Syntax
                @slug = $1.gsub(/[\"\']/, '')
                @options = {}
                markup.scan(::Liquid::TagAttributes) { |key, value| @options[key.to_sym] = value.gsub(/^'/, '').gsub(/'$/, '') }
              else
                raise ::Liquid::SyntaxError.new("Syntax Error in 'editable_xxx' - Valid syntax: editable_xxx <slug>(, <options>)")
              end

              super
            end

            def render(context)
              current_page = context.registers[:page]

              element = current_page.find_editable_element(context['block'].try(:name), @slug)

              if element.present?
                render_element(context, element)
              else
                super
              end
            end

            protected

            def render_element(context, element)
              element.content
            end

          end

        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
locomotivecms_builder-1.0.0.alpha8 lib/locomotive/builder/liquid/tags/editable/base.rb
locomotivecms_builder-1.0.0.alpha7 lib/locomotive/builder/liquid/tags/editable/base.rb
locomotivecms_builder-1.0.0.alpha6 lib/locomotive/builder/liquid/tags/editable/base.rb
locomotivecms_builder-1.0.0.alpha5 lib/locomotive/builder/liquid/tags/editable/base.rb
locomotivecms_builder-1.0.0.alpha4 lib/locomotive/builder/liquid/tags/editable/base.rb
locomotivecms_builder-1.0.0.alpha3 lib/locomotive/builder/liquid/tags/editable/base.rb
locomotivecms_builder-1.0.0.alpha2 lib/locomotive/builder/liquid/tags/editable/base.rb
locomotivecms_builder-1.0.0.alpha1 lib/locomotive/builder/liquid/tags/editable/base.rb