class Compass::Commands::Sprite

Public Class Methods

new(working_path, options) click to toggle source
Calls superclass method Compass::Commands::ProjectBase.new
# File lib/compass/commands/sprite.rb, line 35
def initialize(working_path, options)
  super
  assert_project_directory_exists!
end

Public Instance Methods

description(command) click to toggle source
# File lib/compass/commands/sprite.rb, line 67
def description(command)
  "Generate an import for your sprites."
end
option_parser(arguments) click to toggle source
# File lib/compass/commands/sprite.rb, line 56
def option_parser(arguments)
  parser = Compass::Exec::CommandOptionParser.new(arguments)
  parser.extend(Compass::Exec::GlobalOptionsParser)
  parser.extend(Compass::Exec::ProjectOptionsParser)
  parser.extend(SpriteOptionsParser)
end
parse!(arguments) click to toggle source
# File lib/compass/commands/sprite.rb, line 71
def parse!(arguments)
  parser = option_parser(arguments)
  parser.parse!
  parse_arguments!(parser, arguments)
  parser.options
end
parse_arguments!(parser, arguments) click to toggle source
# File lib/compass/commands/sprite.rb, line 78
def parse_arguments!(parser, arguments)
  parser.options[:uri] = arguments.shift
  unless arguments.size == 0
    raise Compass::Error, "Please specify at least one image to sprite."
  end
end
perform() click to toggle source
# File lib/compass/commands/sprite.rb, line 40
def perform
  relative_uri = options[:uri].gsub(/^#{Compass.configuration.images_dir}\//, '')
  name = Compass::SpriteImporter.sprite_name(relative_uri)
  sprites = Compass::SpriteImporter.new
  options[:output_file] ||= File.join(Compass.configuration.sass_path, "sprites", "_#{name}.#{Compass.configuration.preferred_syntax}")
  options[:skip_overrides] ||= false
  contents = Compass::SpriteImporter.content_for_images(relative_uri, name, options[:skip_overrides])
  if options[:output_file][-4..-1] != "scss"
    contents = Sass::Engine.new(contents, Compass.sass_engine_options.merge(:syntax => :scss)).to_tree.to_sass
  end
  directory File.dirname(options[:output_file])
  write_file options[:output_file], contents
end
usage() click to toggle source
# File lib/compass/commands/sprite.rb, line 63
def usage
  option_parser([]).to_s
end