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