Sha256: 07141560f82b6b9fd42fb66962c52dccb634ca82ba62bfc7c838033295771625
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 KB
Contents
module Mercenary class Program < Command attr_reader :optparse attr_reader :config # Public: Creates a new Program # # name - the name of the program # # Returns nothing def initialize(name) @config = {} super(name) end # Public: Run the program # # argv - an array of string args (usually ARGV) # # Returns nothing 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}" 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 => e if cmd.trace raise e else logger.error e.message abort end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mercenary-0.3.6 | lib/mercenary/program.rb |
mercenary-0.3.5 | lib/mercenary/program.rb |