lib/serega/object_serializer.rb in serega-0.10.0 vs lib/serega/object_serializer.rb in serega-0.11.0
- old
+ new
@@ -8,20 +8,21 @@
class SeregaObjectSerializer
#
# SeregaObjectSerializer instance methods
#
module InstanceMethods
- attr_reader :context, :points, :many, :opts
+ attr_reader :context, :plan, :many, :opts
+ # @param plan [SeregaPlan] Serialization plan
# @param context [Hash] Serialization context
# @param many [TrueClass|FalseClass] is object is enumerable
- # @param points [Array<MapPoint>] Serialization points (attributes)
+ # @param opts [Hash] Any custom options
#
# @return [SeregaObjectSerializer] New SeregaObjectSerializer
- def initialize(context:, points:, many: nil, **opts)
+ def initialize(context:, plan:, many: nil, **opts)
@context = context
- @points = points
+ @plan = plan
@many = many
@opts = opts
end
# Serializes object(s)
@@ -42,11 +43,11 @@
end
# Patched in:
# - plugin :presenter (makes presenter_object and serializes it)
def serialize_object(object)
- points.each_with_object({}) do |point, container|
+ plan.points.each_with_object({}) do |point, container|
serialize_point(object, point, container)
end
end
# Patched in:
@@ -68,17 +69,17 @@
def attach_final_value(final_value, point, container)
container[point.name] = final_value
end
def final_value(value, point)
- point.has_nested_points? ? relation_value(value, point) : value
+ point.child_plan ? relation_value(value, point) : value
end
def relation_value(value, point)
- nested_points = point.nested_points
- nested_serializer = point.nested_object_serializer
- nested_many = point.many
- serializer = nested_serializer.new(context: context, points: nested_points, many: nested_many, **opts)
+ child_plan = point.child_plan
+ child_serializer = point.child_object_serializer
+ child_many = point.many
+ serializer = child_serializer.new(context: context, plan: child_plan, many: child_many, **opts)
serializer.serialize(value)
end
def array?(object, many)
many.nil? ? object.is_a?(Enumerable) : many