Class: RailsSimpleParams::Coercion
- Inherits:
-
Object
- Object
- RailsSimpleParams::Coercion
- Defined in:
- lib/rails_simple_params/coercion.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/virtual_param.rb,
lib/rails_simple_params/coercion/big_decimal_param.rb
Defined Under Namespace
Classes: ArrayParam, BigDecimalParam, BooleanParam, FloatParam, HashParam, IntegerParam, StringParam, TimeParam, VirtualParam
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
- TIME_TYPES =
[Date, DateTime, Time].freeze
- BOOLEAN_TYPES =
[TrueClass, FalseClass, :boolean].freeze
Instance Attribute Summary collapse
-
#coercion ⇒ Object
readonly
Returns the value of attribute coercion.
-
#param ⇒ Object
readonly
Returns the value of attribute param.
Instance Method Summary collapse
- #coerce ⇒ Object
-
#initialize(param, type, options) ⇒ Coercion
constructor
A new instance of Coercion.
- #klass_for(type) ⇒ Object
Constructor Details
#initialize(param, type, options) ⇒ Coercion
Returns a new instance of Coercion.
25 26 27 28 |
# File 'lib/rails_simple_params/coercion.rb', line 25 def initialize(param, type, ) @param = param @coercion = klass_for(type).new(param: param, options: , type: type) end |
Instance Attribute Details
#coercion ⇒ Object (readonly)
Returns the value of attribute coercion.
5 6 7 |
# File 'lib/rails_simple_params/coercion.rb', line 5 def coercion @coercion end |
#param ⇒ Object (readonly)
Returns the value of attribute param.
5 6 7 |
# File 'lib/rails_simple_params/coercion.rb', line 5 def param @param end |
Instance Method Details
#coerce ⇒ Object
37 38 39 40 41 |
# File 'lib/rails_simple_params/coercion.rb', line 37 def coerce return nil if param.nil? coercion.coerce end |
#klass_for(type) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/rails_simple_params/coercion.rb', line 30 def klass_for(type) klass = PARAM_TYPE_MAPPING[type] return klass if klass raise TypeError end |