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