Class: HammerCLI::Options::Normalizers::Enum

Inherits:
AbstractNormalizer show all
Defined in:
lib/hammer_cli/options/normalizers.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractNormalizer

inherited

Constructor Details

#initialize(allowed_values) ⇒ Enum

Returns a new instance of Enum.



323
324
325
# File 'lib/hammer_cli/options/normalizers.rb', line 323

def initialize(allowed_values)
  @allowed_values = allowed_values
end

Instance Attribute Details

#allowed_valuesObject (readonly)

Returns the value of attribute allowed_values.



321
322
323
# File 'lib/hammer_cli/options/normalizers.rb', line 321

def allowed_values
  @allowed_values
end

Class Method Details

.common_descriptionObject



316
317
318
# File 'lib/hammer_cli/options/normalizers.rb', line 316

def common_description
  _("Possible values are described in the option's description")
end

.completion_typeObject



312
313
314
# File 'lib/hammer_cli/options/normalizers.rb', line 312

def completion_type
  :enum
end

Instance Method Details

#complete(value) ⇒ Object



344
345
346
# File 'lib/hammer_cli/options/normalizers.rb', line 344

def complete(value)
  Completer::finalize_completions(@allowed_values)
end

#completion_typeObject



348
349
350
# File 'lib/hammer_cli/options/normalizers.rb', line 348

def completion_type
  super.merge({ values: allowed_values })
end

#descriptionObject



327
328
329
# File 'lib/hammer_cli/options/normalizers.rb', line 327

def description
  _("Possible value(s): %s") % quoted_values
end

#format(value) ⇒ Object



331
332
333
334
335
336
337
338
339
340
341
342
# File 'lib/hammer_cli/options/normalizers.rb', line 331

def format(value)
  if @allowed_values.include? value
    value
  else
    if allowed_values.count == 1
      msg = _("Value must be %s.") % quoted_values
    else
      msg = _("Value must be one of %s.") % quoted_values
    end
    raise ArgumentError, msg
  end
end