class Compass::Exec::SubCommandUI

Attributes

args[RW]

Public Class Methods

new(args) click to toggle source
# File lib/compass/exec/sub_command_ui.rb, line 9
def initialize(args)
  self.args = args
end

Public Instance Methods

run!() click to toggle source
# File lib/compass/exec/sub_command_ui.rb, line 13
def run!
  begin
    return perform!
  rescue Exception => e
    raise e if e.is_a? SystemExit
    if e.is_a?(::Compass::Error) || e.is_a?(OptionParser::ParseError)
      $stderr.puts e.message
    else
      ::Compass::Exec::Helpers.report_error(e, @options || {})
    end
    return 1
  end
end

Protected Instance Methods

perform!() click to toggle source
# File lib/compass/exec/sub_command_ui.rb, line 29
def perform!
  $command = args.shift
  command_class = Compass::Commands[$command]
  unless command_class
    args.unshift($command)
    $command = "help"
    command_class = Compass::Commands::Default
  end
  @options = if command_class.respond_to?("parse_#{$command}!")
    command_class.send("parse_#{$command}!", args)
  else
    command_class.parse!(args)
  end
  cmd = command_class.new(Dir.getwd, @options)
  cmd.execute
  cmd.successful? ? 0 : 1
rescue OptionParser::ParseError => e
  puts "Error: #{e.message}"
  puts command_class.usage if command_class.respond_to?(:usage)
end