Sha256: f0f637b7f6b97fdc9bc54469dd59abc1fe966ef82ad6d700d52ad1a2ef1d4b4b

Contents?: true

Size: 1.78 KB

Versions: 12

Compression:

Stored size: 1.78 KB

Contents

module Smithy
  module Liquid
    module Tags
      module Asset
        class AssetImageTag < ::Liquid::Tag
          Syntax = /(#{::Liquid::Expression}+)?/
          def initialize(tag_name, markup, tokens)
            if markup =~ Syntax
              @asset_id = $1.gsub('\'', '').strip
              if @asset = ::Smithy::Asset.find_by_id(@asset_id)
                @url = @asset.file.url
                @alt = @asset.name
              else
                @url = @asset_id
                @alt = ''
              end
            else
              raise ::Liquid::SyntaxError.new("Syntax Error in '#{@tag_name}' - Valid syntax: image_tag <asset_id|path>")
            end
            super
          end

          def render(context)
            controller  = context.registers[:controller]
            controller.view_context.send(:image_tag, @url, :alt => @alt)
          end
        end
        class AssetFilePath < ::Liquid::Tag
          Syntax = /(#{::Liquid::Expression}+)?/
          def initialize(tag_name, markup, tokens)
            if markup =~ Syntax
              @asset_id = $1.gsub('\'', '')
              if @asset = ::Smithy::Asset.find_by_id(@asset_id)
                @url = @asset.file.url
              else
                @url = @asset_id
              end
            else
              raise ::Liquid::SyntaxError.new("Syntax Error in '#{@tag_name}' - Valid syntax: file_path <asset_id|path>")
            end
            super
          end

          def render(context)
            @url
          end
        end
      end
      ::Liquid::Template.register_tag('asset_image_tag', Asset::AssetImageTag)
      ::Liquid::Template.register_tag('asset_image_path', Asset::AssetFilePath)
      ::Liquid::Template.register_tag('asset_file_path', Asset::AssetFilePath)
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
smithycms-0.5.2 lib/smithy/liquid/tags/asset.rb
smithycms-0.5.1 lib/smithy/liquid/tags/asset.rb
smithycms-0.5.0 lib/smithy/liquid/tags/asset.rb
smithycms-0.4.5 lib/smithy/liquid/tags/asset.rb
smithycms-0.4.4 lib/smithy/liquid/tags/asset.rb
smithycms-0.4.3 lib/smithy/liquid/tags/asset.rb
smithycms-0.4.2 lib/smithy/liquid/tags/asset.rb
smithycms-0.4.1 lib/smithy/liquid/tags/asset.rb
smithycms-0.4.0 lib/smithy/liquid/tags/asset.rb
smithycms-0.0.3 lib/smithy/liquid/tags/asset.rb
smithycms-0.0.2 lib/smithy/liquid/tags/asset.rb
smithycms-0.0.1 lib/smithy/liquid/tags/asset.rb