cli/lib/compass/sass_extensions/sprites/image_methods.rb
module Compass
module SassExtensions
module Sprites
module ImageMethods
# Fetches the Sprite::Image object for the supplied name
def image_for(name)
if name.is_a?(Sass::Script::Value::String)
name = name.value
end
name = name.to_s
@images.detect { |img| img.name.downcase == name.downcase}
end
# Returns true if the image name has a hover selector image
def has_hover?(name)
!get_magic_selector_image(name, 'hover').nil?
end
# Returns true if the image name has a target selector image
def has_target?(name)
!get_magic_selector_image(name, 'target').nil?
end
# Returns true if the image name has a focus selector image
def has_focus?(name)
!get_magic_selector_image(name, 'focus').nil?
end
# Returns true if the image name has an active selector image
def has_active?(name)
!get_magic_selector_image(name, 'active').nil?
end
SEPERATORS = ['_', '-']
def get_magic_selector_image(name, selector)
SEPERATORS.each do |seperator|
file = image_for("#{name}#{seperator}#{selector}")
return file if !file.nil?
end
nil
end
# Return and array of image names that make up this sprite
def sprite_names
image_names.map { |f| File.basename(f, '.png') }
end
end
end
end
end