Module: Patir::Command

Included in:
RubyCommand, ShellCommand
Defined in:
lib/patir/command.rb

Overview

This module defines the interface for a Command object.

It more or less serves the purpose of documenting the interface/contract expected by a class that executes commands and returns their output and exit status.

There is also that bit of functionality that facilitates grouping multiple commands into command sequences

The various methods initialize member variables with meaningful values where needed.

Using the contract means implementing the Command#run method. This method should then set the output, exec_time and status values according to the implementation.

Take a look at ShellCommand and RubyCommand for a couple of practical examples.

It is a good idea to rescue all exceptions. You can then set error to return the exception message.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#errorObject

returns the error output for the command



39
40
41
42
43
# File 'lib/patir/command.rb', line 39

def error
  #initialize nil values to something meaningful
  @error||=""
  return @error
end

#exec_timeObject

returns the execution time (duration) for the command



45
46
47
48
49
# File 'lib/patir/command.rb', line 45

def exec_time
  #initialize nil values to something meaningful
  @exec_time||=0
  return @exec_time
end

#nameObject

returns the commands alias/name



27
28
29
30
31
# File 'lib/patir/command.rb', line 27

def name
  #initialize nil values to something meaningful
  @name||=""
  return @name
end

#numberObject

Returns the value of attribute number.



25
26
27
# File 'lib/patir/command.rb', line 25

def number
  @number
end

#outputObject

returns the output of the command



33
34
35
36
37
# File 'lib/patir/command.rb', line 33

def output
  #initialize nil values to something meaningful
  @output||=""
  return @output
end

#statusObject

returns the command status.

valid stati are :not_executed when the command was not run :success when the command has finished succesfully :error when the command has an error :warning when the command finished without errors, but there where warnings



87
88
89
90
91
# File 'lib/patir/command.rb', line 87

def status
  #initialize nil values to something meaningful
  @status||=:not_executed
  return @status
end

#strategyObject

Returns the value of attribute strategy.



25
26
27
# File 'lib/patir/command.rb', line 25

def strategy
  @strategy
end

Instance Method Details

#executed?Boolean

returns false if the command has not been run, alias for run?

Returns:

  • (Boolean)


76
77
78
79
# File 'lib/patir/command.rb', line 76

def executed?
  return false if self.status==:not_executed
  return true
end

#resetObject

clears the status and output of the command.

Call this if you want to pretend that it was never executed



69
70
71
72
73
74
# File 'lib/patir/command.rb', line 69

def reset
  @exec_time=0
  @output=""
  @error=""
  @status=:not_executed
end

#run(context = nil) ⇒ Object

executes the command and returns the status of the command.

overwrite this method in classes that include Command



62
63
64
65
# File 'lib/patir/command.rb', line 62

def run context=nil
  @status=:success
  return self.status
end

#run?Boolean

returns true if the command has been executed

Returns:

  • (Boolean)


56
57
58
# File 'lib/patir/command.rb', line 56

def run?
  executed?
end

#success?Boolean

returns true if the command has finished succesfully

Returns:

  • (Boolean)


51
52
53
54
# File 'lib/patir/command.rb', line 51

def success?
  return true if self.status==:success
  return false
end