Class: StructuredParams::Type::Object
- Inherits:
-
ActiveModel::Type::Value
- Object
- ActiveModel::Type::Value
- StructuredParams::Type::Object
- Defined in:
- lib/structured_params/type/object.rb,
sig/structured_params/type/object.rbs
Overview
Custom type for single StructuredParams::Params objects
Instance Attribute Summary collapse
-
#value_class ⇒ singleton(StructuredParams::Params)
readonly
: singleton(StructuredParams::Params).
Instance Method Summary collapse
-
#cast(value) ⇒ StructuredParams::Params?
Cast value to StructuredParams::Params instance : (untyped) -> StructuredParams::Params?.
-
#initialize(value_class:, **_options) ⇒ Object
constructor
: (value_class: singleton(StructuredParams::Params), **untyped) -> void.
- #permit_attribute_names ⇒ ::Array[untyped]
-
#serialize(value) ⇒ Object
Serialize (convert to Hash) the object : (untyped) -> untyped.
-
#type ⇒ Symbol
: () -> Symbol.
-
#validate_value_class!(value_class) ⇒ void
Validate the class : (untyped) -> void.
Constructor Details
#initialize(value_class:, **_options) ⇒ Object
: (value_class: singleton(StructuredParams::Params), **untyped) -> void
17 18 19 20 21 |
# File 'lib/structured_params/type/object.rb', line 17 def initialize(value_class:, **) super() validate_value_class!(value_class) @value_class = value_class end |
Instance Attribute Details
#value_class ⇒ singleton(StructuredParams::Params) (readonly)
: singleton(StructuredParams::Params)
8 9 10 |
# File 'lib/structured_params/type/object.rb', line 8 def value_class @value_class end |
Instance Method Details
#cast(value) ⇒ StructuredParams::Params?
Cast value to StructuredParams::Params instance : (untyped) -> StructuredParams::Params?
30 31 32 33 34 35 |
# File 'lib/structured_params/type/object.rb', line 30 def cast(value) return nil if value.nil? return value if value.is_a?(@value_class) @value_class.new(value) # call new directly instead of cast_value method end |
#permit_attribute_names ⇒ ::Array[untyped]
9 |
# File 'sig/structured_params/type/object.rbs', line 9
def permit_attribute_names: () -> ::Array[untyped]
|
#serialize(value) ⇒ Object
Serialize (convert to Hash) the object : (untyped) -> untyped
39 40 41 42 43 |
# File 'lib/structured_params/type/object.rb', line 39 def serialize(value) return nil if value.nil? value.is_a?(@value_class) ? value.attributes : value end |
#type ⇒ Symbol
: () -> Symbol
24 25 26 |
# File 'lib/structured_params/type/object.rb', line 24 def type :object end |
#validate_value_class!(value_class) ⇒ void
This method returns an undefined value.
Validate the class : (untyped) -> void
49 50 51 52 53 54 55 56 |
# File 'lib/structured_params/type/object.rb', line 49 def validate_value_class!(value_class) raise ArgumentError, 'value_class must inherit from StructuredParams::Params, got NilClass' if value_class.nil? raise ArgumentError, "value_class must be a Class, got #{value_class.class}" unless value_class.is_a?(Class) return if value_class < StructuredParams::Params raise ArgumentError, "value_class must inherit from StructuredParams::Params, got #{value_class}" end |