lib/bearcat/api_array.rb in bearcat-1.5.10 vs lib/bearcat/api_array.rb in bearcat-1.5.11
- old
+ new
@@ -6,13 +6,13 @@
attr_reader :raw_response, :members
def self.process_response(response, api_client)
if response.body.is_a?(Array)
- ApiArray.new(response, api_client)
+ self.new(response, api_client)
elsif key = array_key(response)
- ApiArray.new(response, api_client, key)
+ self.new(response, api_client, key)
else
make_indifferent(response.body)
end
end
@@ -33,11 +33,11 @@
@page_count = nil
case response.status
when 200..206
@members = process_body(response)
- init_pages(headers[:link])
+ init_pages
end
end
delegate :status, :headers, to: :raw_response
@@ -108,11 +108,11 @@
@link_hash = {}
end
self
end
- private
+ protected
def init_pages(link_header = headers[:link])
@link_hash = {}
if headers.has_key? 'Link'
@@ -143,30 +143,30 @@
end
def load_page(rel)
if @link_hash.has_key? rel
response = get_page(@link_hash[rel])
- ApiArray.process_response(response, @api_client)
+ self.class.process_response(response, @api_client)
end
end
def iterate_pages(per_page = @page_count)
return to_enum(:iterate_pages, per_page) unless block_given?
if per_page.present? && per_page != per_page_count && @link_hash['first']
@page_count = per_page
@raw_response = response = get_page(@link_hash['first'])
yield response
- init_pages(headers[:link])
+ init_pages
else
yield @raw_response
end
while @link_hash['next']
@raw_response = response = get_page(@link_hash['next'])
yield response
- init_pages(headers[:link])
+ init_pages
end
end
def per_page_count
url = raw_response.env[:url]
@@ -201,12 +201,12 @@
key
end
def process_body(response)
if response.body.is_a?(Array)
- ApiArray.make_indifferent(response.body)
+ self.class.make_indifferent(response.body)
elsif response.body.is_a?(Hash) && @array_key
- ApiArray.make_indifferent(response.body[@array_key])
+ self.class.make_indifferent(response.body[@array_key])
end
end
end
end