class Sickle::Option

Attributes

default[RW]
name[RW]
opts[RW]

Public Class Methods

new(name, opts) click to toggle source
# File lib/sickle.rb, line 66
def initialize(name, opts)
  @name, @opts = name, opts

  @default = opts.has_key?(:default) ? opts[:default] : nil

  if @default == true || @default == false
    @type = :boolean
  else
    @type = @default.class.to_s.downcase.to_sym
  end
end

Public Instance Methods

cli_name() click to toggle source
# File lib/sickle.rb, line 90
def cli_name
  @name.to_s.tr("_", "-")
end
coerce(value) click to toggle source
# File lib/sickle.rb, line 94
def coerce(value)
  case @default
  when Fixnum
    value.to_i
  when Float
    value.to_f
  else
    value
  end
end
register(parser, results) click to toggle source
# File lib/sickle.rb, line 78
def register(parser, results)
  if @type == :boolean
    parser.on("--#{cli_name}", opts[:desc]) do
      results[@name] = true
    end
  else
    parser.on("--#{cli_name} #{@name.upcase}") do |v|
      results[@name] = coerce(v)
    end
  end
end