Module: ActiveSerializer::Serializable

Included in:
ActiveSerializer::SerializableHash::ClassMethods
Defined in:
lib/active_serializer/serializable.rb

Instance Method Summary collapse

Instance Method Details

#serialization_rules(options = {}, &block) ⇒ Object



23
24
25
26
27
# File 'lib/active_serializer/serializable.rb', line 23

def serialization_rules(options = {}, &block)
  self.class_variable_set(:@@serialization_options, options)
  ActiveSerializer::SerializationRulesValidator.validate!(&block)
  self.class_variable_set(:@@serialization_rules, block)
end

#serialize(*objects) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/active_serializer/serializable.rb', line 3

def serialize(*objects)
  serialization_options = self.class_variable_get(:@@serialization_options)
  serialization_rules   = self.class_variable_get(:@@serialization_rules)
  ActiveSerializer::Support::ArgsValidator.not_nil!(serialization_rules, :serialization_rules)

  serialized_data = run_serialization(objects, serialization_rules, serialization_options)

  if serialization_options[:no_root_node]
    serialized_data.first[1]
  else
    serialized_data
  end
end

#serialize_all(collection, options = {}) ⇒ Object



17
18
19
20
21
# File 'lib/active_serializer/serializable.rb', line 17

def serialize_all(collection, options = {})
  collection.map do |object|
    serialize(object, options)
  end
end