Class: Gcloud::ResourceManager::Project::List

Inherits:
Array
  • Object
show all
Defined in:
lib/gcloud/resource_manager/project/list.rb

Overview

Project::List is a special case Array with additional values.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(arr = []) ⇒ List

Create a new Project::List with an array of Project instances.


29
30
31
# File 'lib/gcloud/resource_manager/project/list.rb', line 29

def initialize arr = []
  super arr
end

Instance Attribute Details

#tokenObject

If not empty, indicates that there are more projects that match the request and this value should be passed to continue.


25
26
27
# File 'lib/gcloud/resource_manager/project/list.rb', line 25

def token
  @token
end

Instance Method Details

#allObject

Retrieves all projects by repeatedly loading pages until #next? returns false. Returns the list instance for method chaining.

Examples:

require "gcloud"

gcloud = Gcloud.new
resource_manager = gcloud.resource_manager
projects = resource_manager.projects.all # Load all projects

58
59
60
61
62
63
64
65
# File 'lib/gcloud/resource_manager/project/list.rb', line 58

def all
  while next?
    next_projects = self.next
    push(*next_projects)
    self.token = next_projects.token
  end
  self
end

#nextObject

Retrieve the next page of projects.


41
42
43
44
45
# File 'lib/gcloud/resource_manager/project/list.rb', line 41

def next
  return nil unless next?
  ensure_manager!
  @manager.projects token: token
end

#next?Boolean

Whether there a next page of projects.


35
36
37
# File 'lib/gcloud/resource_manager/project/list.rb', line 35

def next?
  !token.nil?
end