Class: Command
- Inherits:
-
Hash
- Object
- Hash
- Command
- Defined in:
- lib/command.rb
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(command) ⇒ Command
constructor
A new instance of Command.
Constructor Details
#initialize(command) ⇒ Command
Returns a new instance of Command.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/command.rb', line 2 def initialize command if(command.kind_of?(String)) self[:input] = command self[:timeout] = 0 self[:directory] = '' self[:exit_code] = 0 self[:output] = '' self[:error] = '' self[:machine_name] = '' self[:user_name] = '' self[:start_time] = nil self[:end_time] = nil end if(command.kind_of?(Hash)) command.each{|k,v| self[k.to_sym]=v } end end |
Instance Method Details
#execute ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/command.rb', line 24 def execute Logger.start_command self pwd=Dir.pwd Dir.chdir(self[:directory]) if(self.has_key?(:directory) && File.exists?(self[:directory])) #print " " + Color.green + self[:input] + Color.clear self[:start_time]=Time.now timer=Timer.new if self[:input].include?('<%') && self[:input].include?('%>') ruby = self[:input].gsub("<%","").gsub("%>","") self[:output]=eval(ruby) #puts " " + timer.elapsed_str self[:elapsed] = timer.elapsed_str self[:end_time] = Time.now else self[:output] = `#{self[:input]}` self[:elapsed] = timer.elapsed_str self[:end_time] = Time.now self[:exit_code]=$?.to_i end Dir.chdir(pwd) if pwd != Dir.pwd Logger.end_command self end |