Class: Termworld::Utils::OptionParserWrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/termworld/utils/option_parser_wrapper.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ OptionParserWrapper

Returns a new instance of OptionParserWrapper.



7
8
9
# File 'lib/termworld/utils/option_parser_wrapper.rb', line 7

def initialize(options)
  @options = options
end

Instance Attribute Details

#error_messageObject (readonly)

Returns the value of attribute error_message.



6
7
8
# File 'lib/termworld/utils/option_parser_wrapper.rb', line 6

def error_message
  @error_message
end

Instance Method Details

#parse!Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/termworld/utils/option_parser_wrapper.rb', line 10

def parse!
  params = {}
  begin
    OptionParser.new do |op|
      @options.each do |option|
        op.on(*option[:option]) { |v| params[option[:key]] = v }
      end
      op.parse!(params)
    end
  rescue OptionParser::InvalidOption => e
    @error_message = Utils::Color.reden "Invalid options: #{e.args.first}"
    return {}
  end
  params
end