Sha256: 15ae690c7e1420017257668278ac68780bd55b10305fe808ab2f252625c5c12e

Contents?: true

Size: 982 Bytes

Versions: 12

Compression:

Stored size: 982 Bytes

Contents

module PufferPages
  module Liquid
    module Tags

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

        def initialize(tag_name, markup, tokens)
          if markup =~ Syntax
            @paths = variables_from_string(markup)
          else
            raise SyntaxError.new("Syntax Error in 'stylesheets' - Valid syntax: stylesheets path [, path, path ...]")
          end

          super
        end

        def render(context)
          paths = @paths.map {|path| "'#{context[path]}'" }.join(', ')
          context.registers[:tracker].register "<%= stylesheet_link_tag #{paths} %>"
        end

      private

        def variables_from_string(markup)
          markup.split(',').map do |var|
          var.strip =~ /\s*(#{::Liquid::QuotedFragment})\s*/
          $1 ? $1 : nil
          end.compact
        end

      end

    end
  end
end

Liquid::Template.register_tag('stylesheets', PufferPages::Liquid::Tags::Stylesheets)

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
puffer_pages-0.0.19 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.18 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.17 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.16 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.15 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.14 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.13 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.12 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.11 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.10 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.9 lib/puffer_pages/liquid/tags/stylesheets.rb
puffer_pages-0.0.8 lib/puffer_pages/liquid/tags/stylesheets.rb