Sha256: e20512ba2d474c82c2c7af1cf48225834d9d9b8c95beca41fe1fb7a4bbe92f48

Contents?: true

Size: 1.17 KB

Versions: 8

Compression:

Stored size: 1.17 KB

Contents

module Redcar
  class Command
    class Executor
      include Redcar::Core::HasLogger
      
      def self.current_environment
        win = Redcar.app.focussed_window        
        tab = Redcar.app.focussed_notebook_tab
        { :win => win,
          :tab => tab }
      end
      
      def initialize(command_instance, options={})
        @command_instance = command_instance
        @options          = options
      end
      
      def execute
        @command_instance.environment(Executor.current_environment)
        begin
          result = @command_instance.execute
        rescue Object => e
          @command_instance.error = e
          print_command_error(e)
        rescue java.lang.StackOverflowError => e
          @command_instance.error = e
          print_command_error(e)
        end
        record
        result
      end
      
      private

      def print_command_error(e)
        puts "Error in command #{@command_instance.class}"
        puts e.class.to_s + ": " + e.message
        puts e.backtrace
      end
      
      def record
        if Redcar.app.history
          Redcar.app.history.record(@command_instance)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
redcar-0.3.8.4 plugins/application/lib/application/command/executor.rb
redcar-0.3.8.3 plugins/application/lib/application/command/executor.rb
redcar-0.3.8.2 plugins/application/lib/application/command/executor.rb
redcar-0.3.8.1 plugins/application/lib/application/command/executor.rb
redcar-0.3.8 plugins/application/lib/application/command/executor.rb
redcar-0.3.7.1 plugins/application/lib/application/command/executor.rb
redcar-0.3.7 plugins/application/lib/application/command/executor.rb
redcar-0.3.6 plugins/application/lib/application/command/executor.rb