Class: VzaarApi::Lib::PagedResource

Inherits:
Object
  • Object
show all
Defined in:
lib/vzaar_api/lib/paged_resource.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query = {}) ⇒ PagedResource

Returns a new instance of PagedResource.



7
8
9
10
11
12
# File 'lib/vzaar_api/lib/paged_resource.rb', line 7

def initialize(query = {})
  @query = query.dup
  @resource_class = @query.delete(:resource_class)
  @resource_url = @query.delete(:resource_url)
  @loaded = false
end

Instance Attribute Details

#collectionObject (readonly)

Returns the value of attribute collection.



5
6
7
# File 'lib/vzaar_api/lib/paged_resource.rb', line 5

def collection
  @collection
end

#metaObject (readonly)

Returns the value of attribute meta.



5
6
7
# File 'lib/vzaar_api/lib/paged_resource.rb', line 5

def meta
  @meta
end

#queryObject (readonly)

Returns the value of attribute query.



5
6
7
# File 'lib/vzaar_api/lib/paged_resource.rb', line 5

def query
  @query
end

#resource_classObject (readonly)

Returns the value of attribute resource_class.



5
6
7
# File 'lib/vzaar_api/lib/paged_resource.rb', line 5

def resource_class
  @resource_class
end

#resource_urlObject (readonly)

Returns the value of attribute resource_url.



5
6
7
# File 'lib/vzaar_api/lib/paged_resource.rb', line 5

def resource_url
  @resource_url
end

Instance Method Details

#each_itemObject



18
19
20
21
22
23
# File 'lib/vzaar_api/lib/paged_resource.rb', line 18

def each_item
  return enum_for :each_item unless block_given?
  begin
    each { |record| yield record }
  end while !self.next.empty?
end

#firstObject



25
26
27
# File 'lib/vzaar_api/lib/paged_resource.rb', line 25

def first
  loaded? ? load_page_url(:first) : load!
end

#lastObject



37
38
39
# File 'lib/vzaar_api/lib/paged_resource.rb', line 37

def last
  load_page_url :last
end

#loaded?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/vzaar_api/lib/paged_resource.rb', line 14

def loaded?
  @loaded
end

#nextObject



29
30
31
# File 'lib/vzaar_api/lib/paged_resource.rb', line 29

def next
  load_page_url :next
end

#previousObject



33
34
35
# File 'lib/vzaar_api/lib/paged_resource.rb', line 33

def previous
  load_page_url :previous
end