Method: Openaq::Networking#paginated_get

Defined in:
lib/openaq/networking.rb

#paginated_get(path, params = {}) ⇒ Object

Raises:

  • (StopIteration)

    when there are no more results



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/openaq/networking.rb', line 26

def paginated_get(path, params={})
  Enumerator.new do |yielder|
    page = 1
    params = { page: page }.merge(params)

    loop do
      response = get(path, params)
      if !response.empty?
        response.map { |item| yielder << item }
        params[:page] += 1
      else
        raise StopIteration
      end
    end
  end.lazy
end