class I18n::Tasks::Command::OptionParsers::Enum::ListParser

Constants

DEFAULT_ERROR

Public Class Methods

new(valid, error_message = DEFAULT_ERROR) click to toggle source
# File lib/i18n/tasks/command/option_parsers/enum.rb, line 33
def initialize(valid, error_message = DEFAULT_ERROR)
  @valid         = valid.map(&:to_s)
  @error_message = error_message
end

Public Instance Methods

call(values, *) click to toggle source
# File lib/i18n/tasks/command/option_parsers/enum.rb, line 38
def call(values, *)
  values = Array(values)
  return @valid if values == %w[all]

  invalid = values - @valid
  if invalid.empty?
    if values.empty?
      @valid
    else
      values
    end
  else
    fail CommandError, @error_message.call(invalid, @valid)
  end
end