Sha256: fe9fc5c1ade4f38f9e484b489eb42df54b71cc445932a43ed9ed96bbf38c6beb

Contents?: true

Size: 1.03 KB

Versions: 43

Compression:

Stored size: 1.03 KB

Contents

require 'compass/exec/global_options_parser'
require 'compass/exec/project_options_parser'

module Compass::Exec
  class SubCommandUI

    attr_accessor :args

    def initialize(args)
      self.args = args
    end

    def run!
      begin
        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
      return 0
    end
    
    protected
    
    def perform!
      $command = args.shift
      command_class = Compass::Commands[$command]
      @options = if command_class.respond_to?("parse_#{$command}!")
        command_class.send("parse_#{$command}!", args)
      else
        command_class.parse!(args)
      end
      command_class.new(Dir.getwd, @options).execute
    rescue OptionParser::ParseError => e
      puts "Error: #{e.message}"
      puts command_class.usage
    end
    
  end
end

Version data entries

43 entries across 42 versions & 3 rubygems

Version Path
compass-0.11.alpha.3 lib/compass/exec/sub_command_ui.rb
compass-0.11.alpha.1 lib/compass/exec/sub_command_ui.rb
compass-0.11.alpha.0 lib/compass/exec/sub_command_ui.rb
compass-0.10.6 lib/compass/exec/sub_command_ui.rb
compass-0.10.6.pre.1 lib/compass/exec/sub_command_ui.rb
compass-0.10.5 lib/compass/exec/sub_command_ui.rb
compass-0.10.5.pre.1 lib/compass/exec/sub_command_ui.rb
compass-0.10.4 lib/compass/exec/sub_command_ui.rb
compass-0.10.4.pre.4 lib/compass/exec/sub_command_ui.rb
compass-0.10.4.pre.3 lib/compass/exec/sub_command_ui.rb
compass-0.10.4.pre.2 lib/compass/exec/sub_command_ui.rb
compass-0.10.3 lib/compass/exec/sub_command_ui.rb
compass-0.10.3.pre.1 lib/compass/exec/sub_command_ui.rb
compass-0.10.2 lib/compass/exec/sub_command_ui.rb
compass-0.10.1 lib/compass/exec/sub_command_ui.rb
compass-0.10.0 lib/compass/exec/sub_command_ui.rb
compass-0.10.0.rc6 lib/compass/exec/sub_command_ui.rb
compass-0.10.0.rc5 lib/compass/exec/sub_command_ui.rb
compass-0.10.0.rc4 lib/compass/exec/sub_command_ui.rb
compass-0.10.0.rc3 lib/compass/exec/sub_command_ui.rb