class ParamsReady::Parameter::ValueParameterDefinition
Attributes
coder[R]
Public Class Methods
new(name, coder, *args, constraints: [], **options)
click to toggle source
Calls superclass method
ParamsReady::Parameter::Definition::new
# File lib/params_ready/parameter/value_parameter.rb, line 147 def initialize(name, coder, *args, constraints: [], **options) @coder = coder @constraints = constraints super name, *args, **options end
Public Instance Methods
ensure_canonical(value)
click to toggle source
# File lib/params_ready/parameter/value_parameter.rb, line 165 def ensure_canonical(value) coerced = coder.try_coerce value, Format.instance(:backend) if coder.strict_default? && value != coerced raise ParamsReadyError, "input '#{value}' (#{value.class.name}) coerced to '#{coerced}' (#{coerced.class.name})" end validate coerced coerced end
finish()
click to toggle source
Calls superclass method
ParamsReady::Parameter::Definition#finish
# File lib/params_ready/parameter/value_parameter.rb, line 180 def finish @coder.finish if @coder.respond_to?(:finish) super end
name_for_formatter()
click to toggle source
Calls superclass method
ParamsReady::Parameter::Definition#name_for_formatter
# File lib/params_ready/parameter/value_parameter.rb, line 119 def name_for_formatter coder_name = @coder.type_identifier if @coder.respond_to? :type_identifier return coder_name unless coder_name.nil? super end
try_canonicalize(input, context, validator = nil)
click to toggle source
# File lib/params_ready/parameter/value_parameter.rb, line 153 def try_canonicalize(input, context, validator = nil) value = coder.try_coerce input, context return value if Extensions::Undefined.value_indefinite?(value) value, validator = validate value, validator if validator.nil? || validator.ok? [value.freeze, validator] else [nil, validator] end end
validate(value, validator = nil)
click to toggle source
# File lib/params_ready/parameter/value_parameter.rb, line 174 def validate(value, validator = nil) constraints.reduce([value, validator]) do |(value, validator), constraint| constraint.validate value, validator end end