Class: Clamp::Parameter::Definition
- Inherits:
-
Attribute::Definition
- Object
- Attribute::Definition
- Clamp::Parameter::Definition
- Defined in:
- lib/clamp/parameter/definition.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Attributes inherited from Attribute::Definition
#description, #environment_variable
Instance Method Summary collapse
- #consume(arguments) ⇒ Object
- #help_lhs ⇒ Object
-
#initialize(name, description, options = {}) ⇒ Definition
constructor
A new instance of Definition.
Methods inherited from Attribute::Definition
#append_method, #attribute_name, #default_method, #default_value, #help, #help_rhs, #ivar_name, #multivalued?, #of, #read_method, #required?, #write_method
Constructor Details
#initialize(name, description, options = {}) ⇒ Definition
Returns a new instance of Definition.
8 9 10 11 12 13 14 15 16 |
# File 'lib/clamp/parameter/definition.rb', line 8 def initialize(name, description, = {}) @name = name @description = description super() @multivalued = (@name =~ ELLIPSIS_SUFFIX) @required = .fetch(:required) do (@name !~ OPTIONAL) end end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
18 19 20 |
# File 'lib/clamp/parameter/definition.rb', line 18 def name @name end |
Instance Method Details
#consume(arguments) ⇒ Object
24 25 26 27 |
# File 'lib/clamp/parameter/definition.rb', line 24 def consume(arguments) raise ArgumentError, "no value provided" if required? && arguments.empty? arguments.shift(multivalued? ? arguments.length : 1) end |
#help_lhs ⇒ Object
20 21 22 |
# File 'lib/clamp/parameter/definition.rb', line 20 def help_lhs name end |