Class: ActsAsIcontact::ResourceCollection

Inherits:
Enumerator
  • Object
show all
Defined in:
lib/acts_as_icontact/resource_collection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, collection, forwardTo = nil) ⇒ ResourceCollection



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/acts_as_icontact/resource_collection.rb', line 5

def initialize(klass, collection, forwardTo=nil)
  @klass = klass
  @forwardTo = forwardTo
  
  @collection = collection[klass.collection_name]
  # Get number of elements
  @retrieved = @collection.size
  @total = collection["total"]
  
  enumcode = Proc.new do |yielder|
    counter = 0
    while counter < @retrieved
      yielder.yield resource(@collection[counter])
      counter += 1
    end
  end
          
  super(&enumcode)
end

Instance Attribute Details

#retrievedObject (readonly)

Returns the value of attribute retrieved.



3
4
5
# File 'lib/acts_as_icontact/resource_collection.rb', line 3

def retrieved
  @retrieved
end

#totalObject (readonly)

Returns the value of attribute total.



3
4
5
# File 'lib/acts_as_icontact/resource_collection.rb', line 3

def total
  @total
end

Instance Method Details

#[](index) ⇒ Object



25
26
27
# File 'lib/acts_as_icontact/resource_collection.rb', line 25

def [](index)
  resource(@collection[index]) if @collection[index]
end

#firstObject

Calls “next” to kick off the enumerator. This is more in line with what users would expect.



30
31
32
33
# File 'lib/acts_as_icontact/resource_collection.rb', line 30

def first
  self.rewind
  self.next
end