class Intercom::ClientCollectionProxy
Public Instance Methods
each(&block)
click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 8 def each(&block) next_page = nil current_page = nil loop do response_hash = fetch(next_page) raise Intercom::HttpError, 'Http Error - No response entity returned' unless response_hash current_page = extract_current_page(response_hash) deserialize_response_hash(response_hash, block) next_page = extract_next_link(response_hash) break if next_page.nil? || (@params[:page] && (current_page >= @params[:page])) end self end
fetch(next_page)
click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 23 def fetch(next_page) if next_page @client.get(next_page, {}) else @client.get(@url, @params) end end
Private Instance Methods
extract_current_page(response_hash)
click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 44 def extract_current_page(response_hash) return nil unless paging_info_present?(response_hash) response_hash['pages']['page'] end
extract_next_link(response_hash)
click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 37 def extract_next_link(response_hash) return nil unless paging_info_present?(response_hash) paging_info = response_hash.delete('pages') paging_info['next'] end
paging_info_present?(response_hash)
click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 33 def paging_info_present?(response_hash) !!(response_hash['pages'] && response_hash['pages']['type']) end