Module: Lunker::PagedResource

Included in:
StackOverflow, User
Defined in:
lib/lunker/paged_resource.rb

Instance Method Summary collapse

Instance Method Details

#get_paged_resource(url, limit = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/lunker/paged_resource.rb', line 3

def get_paged_resource(url, limit=nil)
  res = Lunker.configuration.request_object.get url
  raise 'bad get request' unless valid?(res)

  data = []
  page = 1

  data = data.concat res['items']
  while res['has_more']

    res = Lunker.configuration.request_object.get "#{url}&page=#{page}"

    if valid?(res)
      page += 1
      data = data.concat res['items']
    end

    if limit && data.length > limit
      break
    end
  end

  Lunker.requests_remaining = res['quota_remaining']

  data
end

#valid?(response) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/lunker/paged_resource.rb', line 30

def valid?(response)
  response.kind_of?(Hash) && !response.has_key?('error')
end