module TTY::Option::ParamPermitted

Public Class Methods

[](param, value)
Alias for: call
call(param, value) click to toggle source

Convert parameter value to another type

@example

param = Parameter::Argument.create(:foo, permit: %w[11 12 13])
ParamPermitted[param, "12"] # => 12

@api public

# File lib/tty/option/param_permitted.rb, line 15
def call(param, value)
  return Result.success(value) unless param.permit?

  if param.permit.include?(value)
    Result.success(value)
  else
    Result.failure(UnpermittedArgument.new(param, value))
  end
end
Also aliased as: []

Private Instance Methods

[](param, value)
Alias for: call
call(param, value) click to toggle source

Convert parameter value to another type

@example

param = Parameter::Argument.create(:foo, permit: %w[11 12 13])
ParamPermitted[param, "12"] # => 12

@api public

# File lib/tty/option/param_permitted.rb, line 15
def call(param, value)
  return Result.success(value) unless param.permit?

  if param.permit.include?(value)
    Result.success(value)
  else
    Result.failure(UnpermittedArgument.new(param, value))
  end
end
Also aliased as: []