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