Class: FastSerializer::SerializedField
- Inherits:
-
Object
- Object
- FastSerializer::SerializedField
- Defined in:
- lib/fast_serializer/serialized_field.rb
Overview
Data structure used internally for maintaining a field to be serialized.
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(name, optional: false, serializer: nil, serializer_options: nil, enumerable: false) ⇒ SerializedField
constructor
A new instance of SerializedField.
- #optional? ⇒ Boolean
-
#serialize(value) ⇒ Object
Wrap a value in the serializer if one has been set.
Constructor Details
#initialize(name, optional: false, serializer: nil, serializer_options: nil, enumerable: false) ⇒ SerializedField
Returns a new instance of SerializedField.
6 7 8 9 10 11 12 13 14 |
# File 'lib/fast_serializer/serialized_field.rb', line 6 def initialize(name, optional: false, serializer: nil, serializer_options: nil, enumerable: false) @name = name @optional = !!optional if serializer @serializer = serializer = @enumerable = enumerable end end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
4 5 6 |
# File 'lib/fast_serializer/serialized_field.rb', line 4 def name @name end |
Instance Method Details
#optional? ⇒ Boolean
16 17 18 |
# File 'lib/fast_serializer/serialized_field.rb', line 16 def optional? @optional end |
#serialize(value) ⇒ Object
Wrap a value in the serializer if one has been set. Otherwise just returns the raw value.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/fast_serializer/serialized_field.rb', line 21 def serialize(value) if value && @serializer serializer = nil if @enumerable serializer = ArraySerializer.new(value, :serializer => @serializer, :serializer_options => ) else serializer = @serializer.new(value, ) end context = SerializationContext.current if context context.with_reference(value){ serializer.as_json } else serializer.as_json end else serialize_value(value) end end |