Method: Clamp::Option::Definition#initialize

Defined in:
lib/clamp/option/definition.rb

#initialize(switches, type, description, options = {}) ⇒ Definition

Returns a new instance of Definition.

Raises:

  • (ArgumentError)


9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/clamp/option/definition.rb', line 9

def initialize(switches, type, description, options = {})
  @switches = Array(switches)
  @type = type
  @description = description
  super(options)
  @multivalued = options[:multivalued]
  return unless options.key?(:required)
  @required = options[:required]
  # Do some light validation for conflicting settings.
  raise ArgumentError, "Specifying a :default value with :required doesn't make sense" if options.key?(:default)
  raise ArgumentError, "A required flag (boolean) doesn't make sense." if type == :flag
end