class Compass::SpriteImporter
Constants
- CONTENT_TEMPLATE
- CONTENT_TEMPLATE_FILE
- SPRITE_IMPORTER_REGEX
- TEMPLATE_FOLDER
- VAILD_FILE_NAME
- VALID_EXTENSIONS
Public Class Methods
content_for_images(uri, name, skip_overrides = false)
click to toggle source
Generates the Sass for this sprite file
# File lib/compass/sprite_importer.rb, line 111 def self.content_for_images(uri, name, skip_overrides = false) binder = Compass::Sprites::Binding.new(:name => name, :uri => uri, :skip_overrides => skip_overrides, :sprite_names => sprite_names(uri), :files => files(uri)) CONTENT_TEMPLATE.result(binder.get_binding) end
files(uri)
click to toggle source
Returns the Glob of image files for the uri
# File lib/compass/sprite_importer.rb, line 81 def self.files(uri) Compass.configuration.sprite_load_path.compact.each do |folder| files = Sass::Util.glob(File.join(folder, uri)).sort next if files.empty? return files end path = Compass.configuration.sprite_load_path.to_a.join(', ') raise Compass::SpriteException, %Q{No files were found in the load path matching "#{uri}". Your current load paths are: #{path}} end
find_all_sprite_map_files(path)
click to toggle source
finds all sprite files
# File lib/compass/sprite_importer.rb, line 16 def self.find_all_sprite_map_files(path) hex = "[0-9a-f]" glob = "*-s#{hex*10}{#{VALID_EXTENSIONS.join(",")}}" Sass::Util.glob(File.join(path, "**", glob)) end
path(uri)
click to toggle source
The on-disk location of this sprite
# File lib/compass/sprite_importer.rb, line 75 def self.path(uri) path, _ = path_and_name(uri) path end
path_and_name(uri)
click to toggle source
# File lib/compass/sprite_importer.rb, line 60 def self.path_and_name(uri) if uri =~ SPRITE_IMPORTER_REGEX [$1, $3] else raise Compass::Error, "invalid sprite path" end end
sass_engine(uri, name, importer, options)
click to toggle source
Returns a Sass::Engine for this sprite object
# File lib/compass/sprite_importer.rb, line 105 def self.sass_engine(uri, name, importer, options) content = content_for_images(uri, name, options[:skip_overrides]) Sass::Engine.new(content, sass_options(uri, importer, options)) end
sass_options(uri, importer, options)
click to toggle source
Returns the ::sass_options for this sprite
# File lib/compass/sprite_importer.rb, line 100 def self.sass_options(uri, importer, options) options.merge!(:filename => uri.gsub(%r{\*/},"*\\/"), :syntax => :scss, :importer => importer) end
sprite_name(uri)
click to toggle source
Name of this spite
# File lib/compass/sprite_importer.rb, line 69 def self.sprite_name(uri) _, name = path_and_name(uri) name end
sprite_names(uri)
click to toggle source
Returns an Array of image names without the file extension
# File lib/compass/sprite_importer.rb, line 93 def self.sprite_names(uri) files(uri).collect do |file| File.basename(file, '.png') end end
Public Instance Methods
eql?(other)
click to toggle source
# File lib/compass/sprite_importer.rb, line 41 def eql?(other) other.class == self.class end
find(uri, options)
click to toggle source
# File lib/compass/sprite_importer.rb, line 22 def find(uri, options) if uri =~ SPRITE_IMPORTER_REGEX return self.class.sass_engine(uri, self.class.sprite_name(uri), self, options) end nil end
find_relative(uri, base, options)
click to toggle source
# File lib/compass/sprite_importer.rb, line 29 def find_relative(uri, base, options) nil end
hash()
click to toggle source
# File lib/compass/sprite_importer.rb, line 37 def hash self.class.name.hash end
key(uri, options={})
click to toggle source
# File lib/compass/sprite_importer.rb, line 51 def key(uri, options={}) [self.class.name + ":sprite:" + File.dirname(File.expand_path(uri)), File.basename(uri)] end
mtime(uri, options)
click to toggle source
# File lib/compass/sprite_importer.rb, line 45 def mtime(uri, options) self.class.files(uri).sort.inject(Time.at(0)) do |max_time, file| (t = File.mtime(file)) > max_time ? t : max_time end end
public_url(*args)
click to toggle source
# File lib/compass/sprite_importer.rb, line 55 def public_url(*args) nil end
to_s()
click to toggle source
# File lib/compass/sprite_importer.rb, line 33 def to_s self.class.name end