class Mercenary::Program
Attributes
config[R]
optparse[R]
Public Class Methods
new(name)
click to toggle source
Public: Creates a new Program
name - the name of the program
Returns nothing
Calls superclass method
Mercenary::Command::new
# File lib/mercenary/program.rb, line 13 def initialize(name) @config = {} super(name) end
Public Instance Methods
go(argv)
click to toggle source
Public: Run the program
argv - an array of string args (usually ARGV)
Returns nothing
Calls superclass method
Mercenary::Command#go
# File lib/mercenary/program.rb, line 23 def go(argv) logger.debug("Using args passed in: #{argv.inspect}") cmd = nil @optparse = OptionParser.new do |opts| cmd = super(argv, opts, @config) end begin @optparse.parse!(argv) rescue OptionParser::InvalidOption => e logger.error "Whoops, we can't understand your command." logger.error e.message.to_s logger.error "Run your command again with the --help switch to see available options." abort end logger.debug("Parsed config: #{@config.inspect}") begin cmd.execute(argv, @config) rescue StandardError => e if cmd.trace raise e else logger.error e.message abort end end end