Class: Representable::CollectionDeserializer

Inherits:
Array
  • Object
show all
Defined in:
lib/representable/deserializer.rb

Overview

always is the targeted collection, already.

Instance Method Summary collapse

Constructor Details

#initialize(binding) ⇒ CollectionDeserializer

TODO: get rid of binding dependency



3
4
5
6
7
8
9
10
11
# File 'lib/representable/deserializer.rb', line 3

def initialize(binding) # TODO: get rid of binding dependency
  # next step: use #get always.
  @binding = binding
  collection = []
  # should be call to #default:
  collection = binding.get if binding.sync?

  super collection
end

Instance Method Details

#deserialize(fragment) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/representable/deserializer.rb', line 13

def deserialize(fragment)
  # next step: get rid of collect.
  fragment.enum_for(:each_with_index).collect { |item_fragment, i|
    @deserializer = ObjectDeserializer.new(@binding, lambda { self[i] })

    @deserializer.call(item_fragment) # FIXME: what if obj nil?
  }
end