Sha256: a3159c494bc8369f371eedea72b8b98c950622162f088f5bc3e28a45a9b96016
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
require 'active_support/configurable' module ActiveAssets module ActiveSprites class Sprites include ActiveSupport::Configurable include Configurable ActiveSupport.run_load_hooks(:active_sprites, self) def initialize @sprites = Hash.new do |sprites, name| sprites[name] = Sprite.new end end def describe(&blk) instance_eval(&blk) if block_given? self end def all @sprites.values end def sprite(*args, &blk) sprite_path, stylesheet_path, options, as = case args.first when Hash options = args.shift args = *options.find {|k,v| k.is_a?(String) } (args << options).tap {|a| a.last.delete(a.first)} when Symbol # todo make default paths configurable ["sprites/#{args.first.to_s}.png", "sprites/#{args.first.to_s}.css", args.extract_options!, args.first] when String path = args.first [path, "#{File.dirname(path)}/#{File.basename(path, File.extname(path))}.css", args.extract_options!] end options.reverse_merge!(:as => as) @sprites[options[:as] || sprite_path].configure(sprite_path, stylesheet_path, options, &blk) end def [](name) return nil unless @sprites.has_key?(name) @sprites[name] end def clear @sprites.clear end def generate!(railtie = Rails.application) begin case sprite_backend when :rmagick require 'rmagick' RmagickRunner.new(@sprites).generate!(railtie) when :chunky_png begin require 'oily_png' ChunkyPngRunner.new(@sprites).generate!(railtie) rescue LoadError require 'chunky_png' ChunkyPngRunner.new(@sprites).generate!(railtie) raise end end rescue LoadError end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_assets-0.2.3 | lib/active_assets/active_sprites/sprites.rb |