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
-
#error ⇒ Object
returns the error output for the command.
-
#exec_time ⇒ Object
returns the execution time (duration) for the command.
-
#name ⇒ Object
returns the commands alias/name.
-
#number ⇒ Object
Returns the value of attribute number.
-
#output ⇒ Object
returns the output of the command.
-
#status ⇒ Object
returns the command status.
-
#strategy ⇒ Object
Returns the value of attribute strategy.
Instance Method Summary collapse
-
#executed? ⇒ Boolean
returns false if the command has not been run, alias for run?.
-
#reset ⇒ Object
clears the status and output of the command.
-
#run(context = nil) ⇒ Object
executes the command and returns the status of the command.
-
#run? ⇒ Boolean
returns true if the command has been executed.
-
#success? ⇒ Boolean
returns true if the command has finished succesfully.
Instance Attribute Details
#error ⇒ Object
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_time ⇒ Object
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 |
#name ⇒ Object
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 |
#number ⇒ Object
Returns the value of attribute number.
25 26 27 |
# File 'lib/patir/command.rb', line 25 def number @number end |
#output ⇒ Object
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 |
#status ⇒ Object
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 |
#strategy ⇒ Object
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?
76 77 78 79 |
# File 'lib/patir/command.rb', line 76 def executed? return false if self.status==:not_executed return true end |
#reset ⇒ Object
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
56 57 58 |
# File 'lib/patir/command.rb', line 56 def run? executed? end |
#success? ⇒ Boolean
returns true if the command has finished succesfully
51 52 53 54 |
# File 'lib/patir/command.rb', line 51 def success? return true if self.status==:success return false end |