Parent

Class/Module Index [+]

Quicksearch

Compass::SpriteImporter

Attributes

options[RW]
uri[RW]

Public Class Methods

find_all_sprite_map_files(path) click to toggle source

finds all sprite files

# File lib/compass/sprite_importer.rb, line 9
def self.find_all_sprite_map_files(path)
  hex = "[0-9a-f]"
  glob = "*-{,s}#{hex*10}{#{VALID_EXTENSIONS.join(",")}}"
  Dir.glob(File.join(path, "**", glob))
end
load(uri, options) click to toggle source
# File lib/compass/sprite_importer.rb, line 15
def self.load(uri, options)
  klass = Compass::SpriteImporter.new
  klass.uri, klass.options = uri, options
  klass
end
new(options ={}) click to toggle source
# File lib/compass/sprite_importer.rb, line 21
def initialize(options ={})
  @uri, @options = '', {}
  options.each do |key, value|
    send("#{key}=", value)
  end
end
path_and_name(uri) click to toggle source
# File lib/compass/sprite_importer.rb, line 64
def self.path_and_name(uri)
  if uri =~ SPRITE_IMPORTER_REGEX
    [$1, $3]
  else
    raise Compass::Error "invalid sprite path"
  end
end

Public Instance Methods

content_for_images(skip_overrides = false) click to toggle source

Generates the Sass for this sprite file

# File lib/compass/sprite_importer.rb, line 124
def content_for_images(skip_overrides = false)
  @import "compass/utilities/sprites/base";// General Sprite Defaults// You can override them before you import this file.$#{name}-sprite-base-class: ".#{name}-sprite" !default;$#{name}-sprite-dimensions: false !default;$#{name}-position: 0% !default;$#{name}-spacing: 0 !default;$#{name}-repeat: no-repeat !default;$#{name}-prefix: '' !default;$#{name}-clean-up: true !default;#{skip_overrides ? "$#{name}-sprites: sprite-map(\"#{uri}\", $cleanup: $#{name}-clean-up);" : generate_overrides }// All sprites should extend this class// The #{name}-sprite mixin will do so for you.\#{$#{name}-sprite-base-class} {  background: $#{name}-sprites no-repeat;}// Use this to set the dimensions of an element// based on the size of the original image.@mixin #{name}-sprite-dimensions($name) {  @include sprite-dimensions($#{name}-sprites, $name)}// Move the background position to display the sprite.@mixin #{name}-sprite-position($name, $offset-x: 0, $offset-y: 0) {  @include sprite-background-position($#{name}-sprites, $name, $offset-x, $offset-y)}// Extends the sprite base class and set the background position for the desired sprite.// It will also apply the image dimensions if $dimensions is true.@mixin #{name}-sprite($name, $dimensions: $#{name}-sprite-dimensions, $offset-x: 0, $offset-y: 0) {  @extend \#{$#{name}-sprite-base-class};  @include sprite($#{name}-sprites, $name, $dimensions, $offset-x, $offset-y)}@mixin #{name}-sprites($sprite-names, $dimensions: $#{name}-sprite-dimensions, $prefix: sprite-map-name($#{name}-sprites)) {  @include sprites($#{name}-sprites, $sprite-names, $#{name}-sprite-base-class, $dimensions, $prefix)}// Generates a class for each sprited image.@mixin all-#{name}-sprites($dimensions: $#{name}-sprite-dimensions, $prefix: sprite-map-name($#{name}-sprites)) {  @include #{name}-sprites(#{sprite_names.join(" ")}, $dimensions, $prefix);}
end
ensure_path_and_name!() click to toggle source
# File lib/compass/sprite_importer.rb, line 119
def ensure_path_and_name!
  @path, @name = self.class.path_and_name(uri)
end
eql?(other) click to toggle source
# File lib/compass/sprite_importer.rb, line 48
def eql?(other)
  other.class == self.class
end
files() click to toggle source

Returns the Glob of image files for this sprite

# File lib/compass/sprite_importer.rb, line 85
def files
  Dir[File.join(Compass.configuration.images_path, uri)].sort
end
find(uri, options) click to toggle source
# File lib/compass/sprite_importer.rb, line 28
def find(uri, options)
  @uri, @options = uri, options
  if uri =~ SPRITE_IMPORTER_REGEX
    return sass_engine
  end
end
find_relative(uri, base, options) click to toggle source
# File lib/compass/sprite_importer.rb, line 35
def find_relative(uri, base, options)
  @uri, @options = uri, options
  find(File.join(base, uri), options)
end
generate_overrides() click to toggle source

Generates the override defaults for this Sprite $#{name}-#{sprite_name}-position $#{name}-#{sprite_name}-spacing #{name}-#{sprite_name}-repeat:

# File lib/compass/sprite_importer.rb, line 179
    def generate_overrides
      content = // These variables control the generated sprite output// You can override them selectively before you import this file.
      sprite_names.map do |sprite_name| 
        content += $#{name}-#{sprite_name}-position: $#{name}-position !default;$#{name}-#{sprite_name}-spacing: $#{name}-spacing !default;$#{name}-#{sprite_name}-repeat: $#{name}-repeat !default;
      end.join

      content += "\n$#{name}-sprites: sprite-map(\"#{uri}\", \n$cleanup: $#{name}-clean-up,\n"
      content += sprite_names.map do |sprite_name| 
%{  $#{sprite_name}-position: $#{name}-#{sprite_name}-position,
  $#{sprite_name}-spacing: $#{name}-#{sprite_name}-spacing,
  $#{sprite_name}-repeat: $#{name}-#{sprite_name}-repeat}
      end.join(",\n")
      content += ");"
    end
hash() click to toggle source
# File lib/compass/sprite_importer.rb, line 44
def hash
  self.class.name.hash
end
key(uri, options={}) click to toggle source
# File lib/compass/sprite_importer.rb, line 59
def key(uri, options={})
  @uri, @options = uri, options
  [self.class.name + ":" + File.dirname(File.expand_path(uri)), File.basename(uri)]
end
mtime(uri, options) click to toggle source
# File lib/compass/sprite_importer.rb, line 52
def mtime(uri, options)
  @uri, @options = uri, options
  files.sort.inject(Time.at(0)) do |max_time, file|
    (t = File.mtime(file)) > max_time ? t : max_time
  end
end
name() click to toggle source

Name of this spite

# File lib/compass/sprite_importer.rb, line 73
def name
  ensure_path_and_name!
  @name
end
path() click to toggle source

The on-disk location of this sprite

# File lib/compass/sprite_importer.rb, line 79
def path
  ensure_path_and_name!
  @path
end
sass_engine() click to toggle source

Returns a Sass::Engine for this sprite object

# File lib/compass/sprite_importer.rb, line 114
def sass_engine
  validate_sprites!
  Sass::Engine.new(content_for_images, sass_options)
end
sass_options() click to toggle source

Returns the sass options for this sprite

# File lib/compass/sprite_importer.rb, line 109
def sass_options
  options.merge(:filename => name, :syntax => :scss, :importer => self)
end
sprite_names() click to toggle source

Returns an Array of image names without the file extension

# File lib/compass/sprite_importer.rb, line 90
def sprite_names
  files.collect do |file|
    filename = File.basename(file, '.png')
    unless VAILD_FILE_NAME =~ filename
      raise Compass::Error, "Sprite file names must be legal css identifiers. Please rename #{File.basename(file)}"
    end
    filename
  end
end
to_s() click to toggle source
# File lib/compass/sprite_importer.rb, line 40
def to_s
  self.class.name
end
validate_sprites!() click to toggle source
# File lib/compass/sprite_importer.rb, line 100
def validate_sprites!
  files.each do |file|
    unless VALID_EXTENSIONS.include? File.extname(file)
      raise Compass::Error, "Invalid sprite extension only: #{VALID_EXTENSIONS.join(',')} images are allowed"
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.