Class: Sickle::Option
- Inherits:
-
Object
- Object
- Sickle::Option
- Defined in:
- lib/sickle.rb
Instance Attribute Summary collapse
-
#default ⇒ Object
Returns the value of attribute default.
-
#name ⇒ Object
Returns the value of attribute name.
-
#opts ⇒ Object
Returns the value of attribute opts.
Instance Method Summary collapse
- #cli_name ⇒ Object
- #coerce(value) ⇒ Object
-
#initialize(name, opts) ⇒ Option
constructor
A new instance of Option.
- #register(parser, results) ⇒ Object
Constructor Details
#initialize(name, opts) ⇒ Option
Returns a new instance of Option.
66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/sickle.rb', line 66 def initialize(name, opts) @name, @opts = name, opts @default = opts.has_key?(:default) ? opts[:default] : false if @default == true || @default == false @type = :boolean else @type = @default.class.to_s.downcase.to_sym end end |
Instance Attribute Details
#default ⇒ Object
Returns the value of attribute default.
64 65 66 |
# File 'lib/sickle.rb', line 64 def default @default end |
#name ⇒ Object
Returns the value of attribute name.
64 65 66 |
# File 'lib/sickle.rb', line 64 def name @name end |
#opts ⇒ Object
Returns the value of attribute opts.
64 65 66 |
# File 'lib/sickle.rb', line 64 def opts @opts end |
Instance Method Details
#cli_name ⇒ Object
90 91 92 |
# File 'lib/sickle.rb', line 90 def cli_name @name.to_s.tr("_", "-") end |
#coerce(value) ⇒ Object
94 95 96 97 98 99 100 101 102 103 |
# 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) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 |
# 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 |