Method: AttrJson::Type::PolymorphicModel#serialize

Defined in:
lib/attr_json/type/polymorphic_model.rb

#serialize(v) ⇒ Object



112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/attr_json/type/polymorphic_model.rb', line 112

def serialize(v)
  return nil if v.nil?

  # if it's not already a model cast it to a model if possible (eg it's a hash)
  v = cast(v)

  model_name = v.class.name
  type = type_for_model_name(model_name)

  raise_bad_model_name(model_name, v) if type.nil?

  type.serialize(v).merge(type_key => model_name)
end