Sha256: 2884dd76acb99aaaafd00810959f8106c9b6a8277b5305ae8b17f52f9a963ea7
Contents?: true
Size: 958 Bytes
Versions: 7
Compression:
Stored size: 958 Bytes
Contents
module RakutenWebService class SearchResult include Enumerable def initialize(params, resource_class, client) @params = params @resource_class = resource_class @client = client end def each if @results @results.each do |item| yield item end else @results = [] params = @params response = query begin resources = @resource_class.parse_response(response.body) resources.each do |resource| yield resource @results << resource end if response.body['page'] && response.body['page'] < response.body['pageCount'] response = query(params.merge('page' => response.body['page'] + 1)) else response = nil end end while(response) end end private def query(params=nil) @client.get(params || @params) end end end
Version data entries
7 entries across 7 versions & 1 rubygems