Sha256: ff7cc8a5a32d1d67424cc907492868f7d9b893f47df39e31895a04ae025ba385
Contents?: true
Size: 616 Bytes
Versions: 2
Compression:
Stored size: 616 Bytes
Contents
require 'hashstruct' class SimpleOptionParser attr_accessor :defaults def self.parse(argv, defaults={}) new(defaults).parse(argv) end def initialize(defaults={}) @defaults = defaults end def parse(argv) options = {} while argv.first =~ %r{^--([\w\-]+)(?:=(.*))?$} key, value = $1, $2 key = key.gsub('-', '_').to_sym value = if value.nil? true elsif options.has_key?(key) [options[key], value].flatten else value end options[key] = value argv.shift end HashStruct.new(@defaults.merge(options)) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
simple_option_parser-0.8 | lib/simple_option_parser.rb |
simple_option_parser-0.7 | lib/simple_option_parser.rb |