Class: Gcloud::Dns::Zone::List

Inherits:
Array
  • Object
show all
Defined in:
lib/gcloud/dns/zone/list.rb

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(arr = []) ⇒ List

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



31
32
33
# File 'lib/gcloud/dns/zone/list.rb', line 31

def initialize arr = []
  super arr
end

Instance Attribute Details

#tokenObject

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



27
28
29
# File 'lib/gcloud/dns/zone/list.rb', line 27

def token
  @token
end

Class Method Details

.from_response(resp, conn) ⇒ Object

New Zones::List from a response object.



56
57
58
59
60
61
62
63
64
65
# File 'lib/gcloud/dns/zone/list.rb', line 56

def self.from_response resp, conn #:nodoc:
  zones = new(Array(resp.data["managedZones"]).map do |gapi_object|
    Zone.from_gapi gapi_object, conn
  end)
  zones.instance_eval do
    @token = resp.data["nextPageToken"]
    @connection = conn
  end
  zones
end

Instance Method Details

#nextObject

Retrieve the next page of zones.



43
44
45
46
47
48
49
50
51
52
# File 'lib/gcloud/dns/zone/list.rb', line 43

def next
  return nil unless next?
  ensure_connection!
  resp = @connection.list_zones token: token
  if resp.success?
    Zone::List.from_response resp, @connection
  else
    fail ApiError.from_response(resp)
  end
end

#next?Boolean

Whether there a next page of zones.

Returns:

  • (Boolean)


37
38
39
# File 'lib/gcloud/dns/zone/list.rb', line 37

def next?
  !token.nil?
end