module ActiveSerializer::SerializableObject::ClassMethods

Public Instance Methods

serialization_rules(options = {}, &block) click to toggle source
# File lib/active_serializer/serializable_object.rb, line 36
def serialization_rules(options = {}, &block)
  self.class_variable_set(:@@serialization_options, options)
  self.class_variable_set(:@@serialization_rules, block)
end
serialize(*objects) click to toggle source
# File lib/active_serializer/serializable_object.rb, line 8
def serialize(*objects)
  first_object = objects.first
  options = objects.last.is_a?(Hash) ? objects.last : {}

  serialization_options = self.class_variable_get(:@@serialization_options)
  serialization_rules   = self.class_variable_get(:@@serialization_rules)

  if options[:serializable_fields]
    serializer = ActiveSerializer::Serializers::RestrictFieldsObjectSerializer.new(first_object, options)
  else
    serializer = ActiveSerializer::Serializers::ObjectSerializer.new(first_object, options)
  end
  instance_exec do
    serializer.instance_exec(*objects, &serialization_rules)
  end
  if serialization_options[:no_root_node]
    serializer.attrs.first[1]
  else
    serializer.attrs
  end
end
serialize_all(collection, options = {}) click to toggle source
# File lib/active_serializer/serializable_object.rb, line 30
def serialize_all(collection, options = {})
  collection.map do |object|
    serialize(object, options)
  end
end