class Commands::Commands

Attributes

commands[RW]
executor[RW]
global_options[RW]
logger[RW]
opts[RW]

Public Class Methods

new(logger, executor) click to toggle source
# File lib/commands.rb, line 18
def initialize(logger, executor)
  @commands = []
  @opts = nil
  @global_options = {
    :jobflow => []
  }
  @logger = logger
  @executor = executor
end

Public Instance Methods

<<(value) click to toggle source
# File lib/commands.rb, line 32
def <<(value)
  @commands << value
end
each(&block) click to toggle source
# File lib/commands.rb, line 48
def each(&block)
  @commands.each(&block)
end
enact(client) click to toggle source
# File lib/commands.rb, line 44
def enact(client)
  @commands.each { |x| x.enact(client) }
end
exec(cmd) click to toggle source
# File lib/commands.rb, line 93
def exec(cmd)
  @executor.exec(cmd)
end
get_field(field_symbol, default_value=nil) click to toggle source
# File lib/commands.rb, line 84
def get_field(field_symbol, default_value=nil)
  value = @global_options[field_symbol]
  if ( value == nil ) then
    return default_value
  else
    return value
  end
end
have(field_symbol) click to toggle source
# File lib/commands.rb, line 80
def have(field_symbol)
  return @global_options[field_symbol] != nil
end
last() click to toggle source
# File lib/commands.rb, line 28
def last
  @commands.last
end
parse_command(klass, name, description) click to toggle source
# File lib/commands.rb, line 52
def parse_command(klass, name, description)
  @opts.on(name, description) do |arg|
    self << klass.new(name, description, arg, self)
  end      
end
parse_jobflows(args) click to toggle source
# File lib/commands.rb, line 72
def parse_jobflows(args)
  for arg in args do
    if arg =~ /^j-\w{5,20}$/  then
      @global_options[:jobflow] << arg
    end
  end
end
parse_option(klass, name, description, parent_commands, *args) click to toggle source
# File lib/commands.rb, line 58
def parse_option(klass, name, description, parent_commands, *args)
  @opts.on(name, description) do |arg|
    klass.new(name, description, arg, parent_commands, self, *args).attach(commands)
  end
end
parse_options(parent_commands, options) click to toggle source
# File lib/commands.rb, line 64
def parse_options(parent_commands, options)
  for option in options do
    klass, name, description = option[0..2]
    args = option[3..-1]
    self.parse_option(klass, name, description, parent_commands, *args)
  end
end
size() click to toggle source
# File lib/commands.rb, line 36
def size
  @commands.size
end
validate() click to toggle source
# File lib/commands.rb, line 40
def validate
  @commands.each { |x| x.validate }
end