Class: Encore::Serializer::Instance

Inherits:
Object
  • Object
show all
Defined in:
lib/encore/serializer/instance.rb

Instance Method Summary collapse

Constructor Details

#initialize(collection, opts = {}) ⇒ Instance

Returns a new instance of Instance.



12
13
14
15
16
# File 'lib/encore/serializer/instance.rb', line 12

def initialize(collection, opts = {})
  @collection = collection
  @serializers = [serializer]
  @options = parsed_options(opts)
end

Instance Method Details

#as_json(*_) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/encore/serializer/instance.rb', line 18

def as_json(*_)
  # Prepare main collection
  @collection = MetaManager.paginate_collection(@collection, @options)
  @collection = EagerLoadingManager.add(@collection, @options[:include])

  # Fetch linked ids
  linked_ids = MainResourceLinksManager.add(@collection, reflections, @options[:include])

  # Build final output
  output = MainResourceManager.add(@collection, serializer)
  output.merge! linked: LinkedResourceManager.add(linked_ids, @collection)
  output.merge! meta: MetaManager.add(@collection, serializer, @options)

  output
end