Sha256: c5ea5ef0f1bec0fb4ab7dc22d64ca4adbc421d0a43acf37ed8efe3b55eaea3d2

Contents?: true

Size: 1.21 KB

Versions: 12

Compression:

Stored size: 1.21 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]
      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
      command_class.new(Dir.getwd, @options).execute
    rescue OptionParser::ParseError => e
      puts "Error: #{e.message}"
      puts command_class.usage if command_class.respond_to?(:usage)
    end
    
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
compass-0.11.2 lib/compass/exec/sub_command_ui.rb
compass-0.11.1 lib/compass/exec/sub_command_ui.rb
compass-0.11.0 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.7 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.6 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.5 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.4 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.3 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.2 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.1 lib/compass/exec/sub_command_ui.rb
compass-0.11.beta.0 lib/compass/exec/sub_command_ui.rb
compass-0.11.alpha.4 lib/compass/exec/sub_command_ui.rb