module Management
Constants
- VERSION
Public Class Methods
interpret!(argv)
click to toggle source
# File lib/management/interpreter.rb, line 3 def self.interpret!(argv) require 'optparse' commands = Management::Command.all parser = OptionParser.new do |opts| opts.banner = "Usage: management [command [arg ...]]" opts.separator('') opts.separator('Commands:') commands.each { |command| opts.separator command.help_string } opts.separator('') opts.on('-h', '--help', 'Display this screen') { abort opts.to_s } opts.on('-v', '--version', 'Show version') { abort Management::VERSION } end abort parser.help if argv.empty? error_handler = lambda { |e| abort "Error: #{e}\n\n" + parser.help } args = parser.parse(argv) task = args.shift command = commands.find{|c|c.command_name == task} error_handler.call "unknown task \"#{task}\"" if command.nil? command.call_with(args, error_handler) end