Class: Brigadier::Parameters::Argument

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/brigadier/parameters/argument.rb

Instance Attribute Summary

Attributes included from Base

#description, #name, #value

Instance Method Summary collapse

Methods included from Base

#attribute_name, #block_defined?, #forbidden_parameters, #hidden?, #normalised_attribute_name, #valid?, #value?

Constructor Details

#initialize(name, description, args, block) ⇒ Argument

Returns a new instance of Argument.



6
7
8
9
10
11
12
13
# File 'lib/brigadier/parameters/argument.rb', line 6

def initialize(name, description, args, block)
  @name = name
  @description = description
  @args = args
  @value = nil
  @block = block
  assign_value_from_env_variable
end

Instance Method Details

#display_descriptionObject



19
20
21
22
23
24
# File 'lib/brigadier/parameters/argument.rb', line 19

def display_description
  opts = []
  opts << 'valid_values: %s' % [ valid_values.inspect ] if valid_values?
  opts << 'current: %s' % [ value.inspect ]
  '%s (%s)' % [ description, opts.join(', ') ]
end

#display_nameObject



15
16
17
# File 'lib/brigadier/parameters/argument.rb', line 15

def display_name
  name
end

#required?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/brigadier/parameters/argument.rb', line 36

def required?
  true
end

#valid_valuesObject



26
27
28
# File 'lib/brigadier/parameters/argument.rb', line 26

def valid_values
  args.fetch(:valid_values, [])
end

#valid_values?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/brigadier/parameters/argument.rb', line 40

def valid_values?
  !valid_values.empty?
end

#validate!Object



30
31
32
33
34
# File 'lib/brigadier/parameters/argument.rb', line 30

def validate!
  validate_presence!    if required?
  validate_valid_value! if valid_values?
  validate_using_klass! if validator_klasses
end