Class: Fission::Command

Inherits:
Object show all
Extended by:
Forwardable
Includes:
CommandHelpers
Defined in:
lib/fission/command.rb,
lib/fission/command/info.rb,
lib/fission/command/stop.rb,
lib/fission/command/clone.rb,
lib/fission/command/start.rb,
lib/fission/command/delete.rb,
lib/fission/command/status.rb,
lib/fission/command/suspend.rb,
lib/fission/command/snapshot_list.rb,
lib/fission/command/snapshot_create.rb,
lib/fission/command/snapshot_delete.rb,
lib/fission/command/snapshot_revert.rb

Defined Under Namespace

Classes: Clone, Delete, Info, SnapshotCreate, SnapshotDelete, SnapshotList, SnapshotRevert, Start, Status, Stop, Suspend

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from CommandHelpers

#incorrect_arguments, #parse_arguments

Constructor Details

#initialize(args = []) ⇒ Command

Internal: Initializes a new Command with some basic setup. This is intended to be used as a base class for other command classes to inherit from.

args - Array of arguments which will be assigned to the args instance

variable.

Examples

Fission::Command.new ['foo', 'bar']


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

def initialize(args=[])
  ui
  @options = OpenStruct.new
  @args = args
end

Instance Attribute Details

#argsObject (readonly)

Internal: Returns the Array arguments of the command.



15
16
17
# File 'lib/fission/command.rb', line 15

def args
  @args
end

#optionsObject (readonly)

Internal: Returns the OpenStruct options of the command.



12
13
14
# File 'lib/fission/command.rb', line 12

def options
  @options
end

Class Method Details

.helpObject

Internal: Helper method to return the help text of a command. This is intended to be used by a command class which inherits from this class. This method will call the ‘option_parser’ method which must be defined in any class which inherits from this class.

Examples

Fission::Command::Suspend.help

Returns a String of the output parser text.



91
92
93
# File 'lib/fission/command.rb', line 91

def self.help
  self.new.option_parser.to_s
end

Instance Method Details

#command_name(klass = self) ⇒ Object

Internal: Helper method to determine the command name of command class. This should only be called against descendants of this class.

#xamples:

Fission::Command::SnapshotList.new.command_name
# => 'snapshot list'

Returns the command name as a String.



63
64
65
66
67
# File 'lib/fission/command.rb', line 63

def command_name(klass=self)
  klass.class.name.split('::')[2].
                   gsub(/([a-z\d])([A-Z])/,'\1_\2').
                   gsub('_', ' ').downcase
end

#executeObject

Internal: Primary method for performing an action within a command.

Examples

command.execute

Returns nothing



40
41
42
# File 'lib/fission/command.rb', line 40

def execute
  parse_arguments
end

#summaryObject

Internal: Summmary of the command. This is to be implemented by any class which inherits from this class.

Examples

command.summary
# => 'This command does x and y'

Returns a String summary of the command.

Raises:

  • (NotImplementedError)


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

def summary
  raise NotImplementedError
end

#uiObject

Internal: Helper method used to delegate UI related methods through.

Examples

command.ui.output 'foo'

Returns a UI instance.



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

def ui
  @ui ||= UI.new
end