class Twilio::REST::Page

Page Base Class

Constants

META_KEYS

Public Class Methods

new(version, response) click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
23 def initialize(version, response)
24   payload = process_response(response)
25 
26   @version = version
27   @payload = payload
28   @solution = {}
29   @records = load_page(payload)
30 end

Public Instance Methods

each() { |get_instance(record)| ... } click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
92 def each
93   @records.each do |record|
94     yield get_instance(record)
95   end
96 end
get_instance(payload) click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
72 def get_instance(payload)
73   raise Twilio::REST::TwilioError, 'Page.get_instance() must be implemented in the derived class'
74 end
load_page(payload) click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
40 def load_page(payload)
41   if payload['meta'] && payload['meta']['key']
42     return payload[payload['meta']['key']]
43   else
44     keys = payload.keys
45     key = keys - META_KEYS
46     return payload[key.first] if key.size == 1
47   end
48 
49   raise Twilio::REST::TwilioError, 'Page Records can not be deserialized'
50 end
next_page() click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
84 def next_page
85   return nil unless next_page_url
86 
87   response = @version.domain.request('GET', next_page_url)
88 
89   self.class.new(@version, response, @solution)
90 end
next_page_url() click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
62 def next_page_url
63   if @payload['meta'] && @payload['meta']['next_page_url']
64     return @version.domain.absolute_url(URI.parse(@payload['meta']['next_page_url']).request_uri)
65   elsif @payload['next_page_uri']
66     return @version.domain.absolute_url(@payload['next_page_uri'])
67   end
68 
69   nil
70 end
previous_page() click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
76 def previous_page
77   return nil unless previous_page_url
78 
79   response = @version.domain.request('GET', previous_page_url)
80 
81   self.class.new(@version, response, @solution)
82 end
previous_page_url() click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
52 def previous_page_url
53   if @payload['meta'] && @payload['meta']['previous_page_url']
54     return @version.domain.absolute_url(URI.parse(@payload['meta']['previous_page_url']).request_uri)
55   elsif @payload['previous_page_uri']
56     return @version.domain.absolute_url(@payload['previous_page_uri'])
57   end
58 
59   nil
60 end
process_response(response) click to toggle source
   # File lib/twilio-ruby/framework/rest/page.rb
32 def process_response(response)
33   if response.status_code != 200
34     raise Twilio::REST::RestError.new('Unable to fetch page', response)
35   end
36 
37   response.body
38 end
to_s() click to toggle source
    # File lib/twilio-ruby/framework/rest/page.rb
 98 def to_s
 99   '#<Page>'
100 end