Sha256: bf3b1fb65cc21c6770d94e8e113f24e2b720ba66c11bed6a2ad4abd9bba40c61

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

# A Liquid Tag for retrieving path information for theme specific media
#
# Returns the path based on the file extension
#
class Themeitem < Liquid::Block

   @@image_exts = %w( .png .jpg .jpeg .jpe .gif )

   @@stylesheet_exts = %w( .css )

   @@javascript_exts = %w( .js .htc )
                                      
   def initialize(markup, tokens)
      super
      #@theme_name = markup.strip
   end

   def block_delimiter
     ["endthemeitem"]
   end                           
   
   def block_name
     "themeitem"
   end

   def render(context)
      # Which, if either, of these are correct?
      base_url = context['request'].relative_url_root || ActionController::Base.asset_host.to_s
      theme_name = @theme_name || context['active_theme']

      filename = @nodelist.join('').strip
      ext = File.extname( filename )

      if @@image_exts.include?( ext )
         "#{base_url}/themes/#{theme_name}/images/#{filename}"

      elsif @@stylesheet_exts.include?( ext )
         "#{base_url}/themes/#{theme_name}/stylesheets/#{filename}"
         
      elsif @@javascript_exts.include?( ext )
         "#{base_url}/themes/#{theme_name}/javascripts/#{filename}"
      end
   end   
end

Liquid::Template.register_block( 'themeitem', Themeitem )

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
theme_generator-1.3.0 templates/liquid_theme_tags.rb