class Swm::CliOptions

Public Class Methods

new(args) click to toggle source
# File lib/swm/cli_options.rb, line 4
def initialize(args)
  merge!(parse_options(args))
end

Private Instance Methods

decode_value(arg) click to toggle source
# File lib/swm/cli_options.rb, line 23
def decode_value(arg)
  if arg =~ /\d+/
    arg.to_i
  else
    arg
  end
end
parse_options(args) click to toggle source
# File lib/swm/cli_options.rb, line 10
def parse_options(args)
  pairs = args.each_slice(2)
  pairs = pairs.map { |pair| parse_pair(pair) }
  Hash[pairs]
end
parse_pair(pair) click to toggle source
# File lib/swm/cli_options.rb, line 16
def parse_pair(pair)
  raise "Misplaced option value: #{pair[0]}" unless pair[0].start_with?('--')
  raise "No option value for #{pair[0]}" if pair.length == 1
  raise "Misplaced option key: #{pair[1]}" if pair[1].start_with?('--')
  [pair[0].sub(/^--/, '').to_sym, decode_value(pair[1])]
end