class ACappella::OptionParser

Public Class Methods

new() click to toggle source
# File lib/acappella/option_parser.rb, line 5
def initialize
  @opt = ::OptionParser.new

  @options = {}

  @added_options = []
end

Public Instance Methods

add_option(short, long, desc = '') click to toggle source
# File lib/acappella/option_parser.rb, line 13
def add_option(short, long, desc = '')
  @added_options << [short, long, desc]
end
parse!(argv) click to toggle source
# File lib/acappella/option_parser.rb, line 17
def parse!(argv)
  @opt.on('-h', '--host=VAL') {|v| @options[:host] = v }
  @opt.on('-p', '--port=VAL') {|v| @options[:port] = v }

  @added_options.each do |added_option|
    short, long, desc = added_option

    @opt.on(short, long, desc) {|v| @options[:voice] = v }
  end

  @opt.parse!(argv)

  @options
rescue ::OptionParser::MissingArgument => e
  puts @opt.help

  raise e
end