class DynamicSprites::Runner
Attributes
command[R]
interface[R]
options[R]
path[R]
Public Class Methods
new(command, path, options = {})
click to toggle source
# File lib/dynamic-sprites/runner.rb, line 9 def initialize(command, path, options = {}) @interface = Interface.new @command = command @path = Pathname.new(path) unless path.nil? @path ||= File.join(sass_directory, 'dynamic-sprites.sass') unless command.nil? @options = options @options[:output] ||= "#{@path}.png" end
Public Instance Methods
run!()
click to toggle source
Runs dynamic-sprites command.
# File lib/dynamic-sprites/runner.rb, line 20 def run! case command when 'init' generate_mixin! when 'generate' generate_sprite! end end
Private Instance Methods
generate_mixin!()
click to toggle source
Generates mixin in provided path or initializes user interface to determine it otherwise.
# File lib/dynamic-sprites/runner.rb, line 33 def generate_mixin! FileUtils.copy DynamicSprites.mixin_source_path, path interface.generate_mixin_summary(path) end
generate_sprite!()
click to toggle source
Generates sprite using provided options.
# File lib/dynamic-sprites/runner.rb, line 40 def generate_sprite! generator = Generator.new(options[:output], path, options[:layout], options[:geometry]) generator.run! interface.generate_sprite_summary(@options[:output], generator.mixin_call) end
sass_directories()
click to toggle source
Returns an Array of possible paths to directories of project .sass files.
# File lib/dynamic-sprites/runner.rb, line 61 def sass_directories style_directories = [] Find.find(Dir.pwd) do |path| next unless FileTest.directory?(path) if File.basename(path).match(/sass|style/) style_directories << Pathname.new(path) elsif File.basename(path)[0] == ?. Find.prune else next end end style_directories end
sass_directory()
click to toggle source
Chooses one of possible options of defining sass directory path.
# File lib/dynamic-sprites/runner.rb, line 48 def sass_directory case sass_directories.size when 0 interface.prompt_directory when 1 sass_directories.first else interface.choose_directory(sass_directories) end end