Class: SimpleOptionParser

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_option_parser.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(defaults = {}) ⇒ SimpleOptionParser

Returns a new instance of SimpleOptionParser.



11
12
13
# File 'lib/simple_option_parser.rb', line 11

def initialize(defaults={})
  @defaults = defaults
end

Instance Attribute Details

#defaultsObject

Returns the value of attribute defaults.



5
6
7
# File 'lib/simple_option_parser.rb', line 5

def defaults
  @defaults
end

Class Method Details

.parse(argv, defaults = {}) ⇒ Object



7
8
9
# File 'lib/simple_option_parser.rb', line 7

def self.parse(argv, defaults={})
  new(defaults).parse(argv)
end

Instance Method Details

#parse(argv) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/simple_option_parser.rb', line 15

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