Class: Clamp::Parameter::Definition

Inherits:
Attribute::Definition show all
Defined in:
lib/clamp/parameter/definition.rb

Instance Attribute Summary collapse

Attributes inherited from Attribute::Definition

#description, #environment_variable

Instance Method Summary collapse

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, options = {})
  @name = name
  @description = description
  super(options)
  @multivalued = (@name =~ ELLIPSIS_SUFFIX)
  @required = options.fetch(:required) do
    (@name !~ OPTIONAL)
  end
end

Instance Attribute Details

#nameObject (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

Raises:

  • (ArgumentError)


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_lhsObject



20
21
22
# File 'lib/clamp/parameter/definition.rb', line 20

def help_lhs
  name
end