class SimpleOptionParser

Constants

VERSION

Attributes

defaults[RW]

Public Class Methods

new(defaults={}) click to toggle source
# File lib/simple_option_parser.rb, line 9
def initialize(defaults={})
  @defaults = defaults
end
parse(argv, defaults={}) click to toggle source
# File lib/simple_option_parser.rb, line 5
def self.parse(argv, defaults={})
  new(defaults).parse(argv)
end

Public Instance Methods

parse(argv) click to toggle source
# File lib/simple_option_parser.rb, line 13
def parse(argv)
  options = @defaults.dup
  while argv.first =~ %r{^--([\w\-]+)(?:=(.*))?$}
    key, value = $1, $2
    key = key.gsub('-', '_').to_sym
    options[key] = parse_value(value)
    argv.shift
  end
  options
end
parse_value(value) click to toggle source
# File lib/simple_option_parser.rb, line 24
def parse_value(value)
  case value
  when %r{^[\d.]+$}
    value.to_f
  when %r{^(\d+)/(\d+)$}
    Rational($1.to_i, $2.to_i)
  when 'true', 'yes', 'on'
    true
  when 'false', 'no', 'off'
    false
  when nil
    true
  else
    value
  end
end