Sha256: 877f8a781a07731ab8b5b22465bbbf90114b9435b47d4a328acc3b9a9fa55db1

Contents?: true

Size: 1.24 KB

Versions: 56

Compression:

Stored size: 1.24 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
        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
    
    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
    
  end
end

Version data entries

56 entries across 55 versions & 6 rubygems

Version Path
arcabouco-0.2.13 vendor/bundle/gems/compass-1.0.3/lib/compass/exec/sub_command_ui.rb
compass-1.0.3 lib/compass/exec/sub_command_ui.rb
compass-1.1.0.alpha.3 lib/compass/exec/sub_command_ui.rb
compass-1.1.0.alpha.2 lib/compass/exec/sub_command_ui.rb
compass-1.1.0.alpha.1 lib/compass/exec/sub_command_ui.rb
compass-1.1.0.alpha.0 lib/compass/exec/sub_command_ui.rb
compass-1.0.1 lib/compass/exec/sub_command_ui.rb
compass-1.0.0 lib/compass/exec/sub_command_ui.rb
compass-1.0.0.rc.1 lib/compass/exec/sub_command_ui.rb
compass-1.0.0.rc.0 lib/compass/exec/sub_command_ui.rb
compass-0.12.7 lib/compass/exec/sub_command_ui.rb
compass-1.0.0.alpha.21 lib/compass/exec/sub_command_ui.rb
compass-1.0.0.alpha.20 lib/compass/exec/sub_command_ui.rb
sadui-0.0.4 vendor/bundle/ruby/2.1.0/gems/compass-0.12.3/lib/compass/exec/sub_command_ui.rb
sadui-0.0.4 vendor/bundle/ruby/2.0.0/gems/compass-0.12.3/lib/compass/exec/sub_command_ui.rb
compass-0.12.6 lib/compass/exec/sub_command_ui.rb
compass-0.12.5 lib/compass/exec/sub_command_ui.rb
compass-0.12.4 lib/compass/exec/sub_command_ui.rb
compass-1.0.0.alpha.19 lib/compass/exec/sub_command_ui.rb
compass-0.12.3 lib/compass/exec/sub_command_ui.rb