class Anyway::OptionParserBuilder

Initializes the OptionParser instance using the given configuration

Public Class Methods

call(options) { |key, val| ... } click to toggle source
# File lib/anyway/option_parser_builder.rb, line 9
def call(options)
  OptionParser.new do |opts|
    options.each do |key, descriptor|
      opts.on(*option_parser_on_args(key, **descriptor)) do |val|
        yield [key, val]
      end
    end
  end
end

Private Class Methods

option_parser_on_args(key, flag: false, desc: nil, type: ::String) click to toggle source
# File lib/anyway/option_parser_builder.rb, line 21
def option_parser_on_args(key, flag: false, desc: nil, type: ::String)
  on_args = ["--#{key.to_s.tr("_", "-")}#{flag ? "" : " VALUE"}"]
  on_args << type unless flag
  on_args << desc unless desc.nil?
  on_args
end