class Representable::Serializer

serialize -> serialize! -> marshal. # TODO: same flow in deserialize.

Public Instance Methods

call(object, &block) click to toggle source
# File lib/representable/serializer.rb, line 6
def call(object, &block)
  return object if object.nil? # DISCUSS: move to Object#serialize ?

  serialize(object, @binding.user_options, &block)
end

Private Instance Methods

marshal(object, user_options) click to toggle source

0.33 0.004 0.004 0.000 0.000 20001 Hash#merge! 0.00 0.000 0.000 0.000 0.000 1 Hash#merge!

# File lib/representable/serializer.rb, line 32
def marshal(object, user_options)
  object.send(@binding.serialize_method, user_options)
end
serialize(object, user_options) { || ... } click to toggle source
# File lib/representable/serializer.rb, line 13
def serialize(object, user_options, &block)
  return yield if @binding.evaluate_option(:skip_render, object) # this will jump out of #render_fragment. introduce Skip object here.

  serialize!(object, user_options)
end
serialize!(object, user_options) click to toggle source

Serialize one object by calling to_json etc. on it.

# File lib/representable/serializer.rb, line 20
def serialize!(object, user_options)
  object = prepare(object)

  return object unless @binding.representable?

  @binding.evaluate_option(:serialize, object) do
    marshal(object, user_options)
  end
end