Class: ActiveModel::ArraySerializer
- Inherits:
-
Object
- Object
- ActiveModel::ArraySerializer
- Extended by:
- ActiveSupport::DescendantsTracker
- Includes:
- Serializable, Serializer::Caching
- Defined in:
- lib/active_model/array_serializer.rb
Overview
Active Model Array Serializer
Serializes an Array, checking if each element implements the active_model_serializer
method.
To disable serialization of root elements:
ActiveModel::ArraySerializer.root = false
Instance Attribute Summary collapse
-
#object ⇒ Object
readonly
Returns the value of attribute object.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Class Method Summary collapse
-
.cached(value = true) ⇒ Object
set perform caching like root.
Instance Method Summary collapse
-
#initialize(object, options = {}) ⇒ ArraySerializer
constructor
A new instance of ArraySerializer.
- #serializable_array ⇒ Object
- #serialize_object ⇒ Object
Methods included from Serializer::Caching
Methods included from Serializable
Constructor Details
#initialize(object, options = {}) ⇒ ArraySerializer
Returns a new instance of ArraySerializer.
37 38 39 40 |
# File 'lib/active_model/array_serializer.rb', line 37 def initialize(object, ={}) @object = object @options = end |
Instance Attribute Details
#object ⇒ Object (readonly)
Returns the value of attribute object.
23 24 25 |
# File 'lib/active_model/array_serializer.rb', line 23 def object @object end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
23 24 25 |
# File 'lib/active_model/array_serializer.rb', line 23 def @options end |
Class Method Details
.cached(value = true) ⇒ Object
set perform caching like root
32 33 34 |
# File 'lib/active_model/array_serializer.rb', line 32 def cached(value = true) self.perform_caching = value end |
Instance Method Details
#serializable_array ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/active_model/array_serializer.rb', line 46 def serializable_array object.map do |item| if .has_key? :each_serializer serializer = [:each_serializer] elsif item.respond_to?(:active_model_serializer) serializer = item.active_model_serializer end serializer ||= DefaultSerializer serializable = serializer.new(item, .merge(root: nil)) if serializable.respond_to?(:serializable_hash) serializable.serializable_hash else serializable.as_json end end end |
#serialize_object ⇒ Object
42 43 44 |
# File 'lib/active_model/array_serializer.rb', line 42 def serialize_object serializable_array end |