class HammerCLI::Options::Normalizers::EnumList

Public Class Methods

new(allowed_values) click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 275
def initialize(allowed_values)
  @allowed_values = allowed_values
end

Public Instance Methods

complete(value) click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 287
def complete(value)
  Completer::finalize_completions(@allowed_values)
end
description() click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 279
def description
  _("Any combination (comma separated list) of '%s'") % quoted_values
end
format(value) click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 283
def format(value)
  value.is_a?(String) ? parse(value) : []
end

Private Instance Methods

parse(arr) click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 297
def parse(arr)
  arr.split(",").uniq.tap do |values|
    unless values.inject(true) { |acc, cur| acc & (@allowed_values.include? cur) }
      raise ArgumentError, _("Value must be a combination of '%s'.") % quoted_values
    end
  end
end
quoted_values() click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 293
def quoted_values
  @allowed_values.map { |v| "'#{v}'" }.join(', ')
end