lib/bearcat/api_array.rb in bearcat-0.9.4 vs lib/bearcat/api_array.rb in bearcat-0.9.5
- old
+ new
@@ -15,10 +15,11 @@
end
def initialize(response, api_client, array_key = nil)
@api_client = api_client
@array_key = array_key
+ @page_count = 100
case response.status
when 200..206
@members = process_body(response)
@status = response.status
@headers = response.headers
@@ -43,11 +44,10 @@
@link_hash['next'] || @link_hash['prev']
end
def next_page
load_page('next')
-
end
def prev_page
load_page('prev')
end
@@ -56,9 +56,24 @@
load_page('first')
end
def last_page
load_page('last')
+ end
+
+ def each_page(page_count = 50, &block)
+ @page_count = page_count
+ block.call(@members)
+ while @link_hash['next']
+ response = get_page(@link_hash['next'])
+ @headers = response.headers
+ @status = response.status
+ @method = response.env[:method]
+ @members = process_body(response)
+ init_pages(@headers[:link])
+ block.call(@members)
+ end
+ @link_hash = {}
end
def all_pages!(page_count = 50)
if pages?
@page_count = page_count
\ No newline at end of file