Module: FleetAPI::PaginatedCollection

Included in:
Client::Machines, Client::Units
Defined in:
lib/fleet_api/paginated_collection.rb

Defined Under Namespace

Modules: Attributes

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



2
3
4
5
# File 'lib/fleet_api/paginated_collection.rb', line 2

def self.included(klass)
  klass.attribute :nextPageToken
  klass.send(:extend, FleetAPI::PaginatedCollection::Attributes)
end

Instance Method Details

#all(params = {}) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/fleet_api/paginated_collection.rb', line 29

def all(params={})
  response = connection.send(self.collection_request, params)

  collection = self.clone.load(response.body[self.collection_root])

  collection
end

#collection_requestObject



21
22
23
# File 'lib/fleet_api/paginated_collection.rb', line 21

def collection_request
  self.class.instance_variable_get(:@collection_request)
end

#collection_rootObject



17
18
19
# File 'lib/fleet_api/paginated_collection.rb', line 17

def collection_root
  self.class.instance_variable_get(:@collection_root)
end

#next_pageObject



25
26
27
# File 'lib/fleet_api/paginated_collection.rb', line 25

def next_page
  all("url" => self.next_link) if self.next_link
end