Class: RailsSimpleParams::Coercion

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_simple_params/coercion.rb,
lib/rails_simple_params/coercion/base.rb,
lib/rails_simple_params/coercion/hash_param.rb,
lib/rails_simple_params/coercion/time_param.rb,
lib/rails_simple_params/coercion/array_param.rb,
lib/rails_simple_params/coercion/float_param.rb,
lib/rails_simple_params/coercion/string_param.rb,
lib/rails_simple_params/coercion/boolean_param.rb,
lib/rails_simple_params/coercion/integer_param.rb,
lib/rails_simple_params/coercion/big_decimal_param.rb

Defined Under Namespace

Classes: ArrayParam, Base, BigDecimalParam, BooleanParam, FloatParam, HashParam, IntegerParam, StringParam, TimeParam

Constant Summary collapse

PARAM_TYPE_MAPPING =
{
  Integer => IntegerParam,
  Float => FloatParam,
  String => StringParam,
  Array => ArrayParam,
  Hash => HashParam,
  BigDecimal => BigDecimalParam,
  Date => TimeParam,
  DateTime => TimeParam,
  Time => TimeParam,
  TrueClass => BooleanParam,
  FalseClass => BooleanParam,
  boolean: BooleanParam
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(param, type, options) ⇒ Coercion

Returns a new instance of Coercion.



22
23
24
25
# File 'lib/rails_simple_params/coercion.rb', line 22

def initialize(param, type, options)
  @param = param
  @coercion = klass_for(type).new(param: param, options: options, type: type)
end

Instance Attribute Details

#coercionObject (readonly)

Returns the value of attribute coercion.



20
21
22
# File 'lib/rails_simple_params/coercion.rb', line 20

def coercion
  @coercion
end

#paramObject (readonly)

Returns the value of attribute param.



20
21
22
# File 'lib/rails_simple_params/coercion.rb', line 20

def param
  @param
end

Instance Method Details

#coerceObject



27
28
29
30
31
# File 'lib/rails_simple_params/coercion.rb', line 27

def coerce
  return nil if param.nil?

  coercion.coerce
end