class Honeybadger::Api::Paginator
Attributes
current_page[R]
next_page_link[R]
pages[R]
prev_page_link[R]
Public Class Methods
new(path, filters, handler)
click to toggle source
# File lib/honeybadger-api/paginator.rb, line 7 def initialize(path, filters, handler) @path = path @filters = filters @handler = handler @pages = {} @current_page = 1 response = Honeybadger::Api.client.get(@path, @filters) @next_page_link = response[:links][:next] @prev_page_link = response[:links][:prev] @pages[current_page] = response[:results].map do |r| @handler.call(r) end end
Public Instance Methods
collection()
click to toggle source
# File lib/honeybadger-api/paginator.rb, line 78 def collection @pages.values.flatten end
next()
click to toggle source
# File lib/honeybadger-api/paginator.rb, line 34 def next if next? encoded_query = URI.parse(@next_page_link).query decoded_query = URI.decode_www_form(encoded_query) next_page_filters = decoded_query.inject({}){ |h,(k,v)| h[k.to_sym] = v; h } response = Honeybadger::Api.client.get(@path, @filters.merge(next_page_filters)) @current_page = current_page + 1 @next_page_link = response[:links][:next] @prev_page_link = response[:links][:prev] @pages[current_page] = response[:results].map do |r| @handler.call(r) end @pages[current_page] else nil end end
next?()
click to toggle source
# File lib/honeybadger-api/paginator.rb, line 26 def next? !@next_page_link.nil? end
previous()
click to toggle source
# File lib/honeybadger-api/paginator.rb, line 56 def previous if previous? encoded_query = URI.parse(@prev_page_link).query decoded_query = URI.decode_www_form(encoded_query) prev_page_filters = decoded_query.inject({}){ |h,(k,v)| h[k.to_sym] = v; h } response = Honeybadger::Api.client.get(@path, @filters.merge(prev_page_filters)) @current_page = current_page - 1 @next_page_link = response[:links][:next] @prev_page_link = response[:links][:prev] @pages[current_page] = response[:results].map do |r| @handler.call(r) end @pages[current_page] else nil end end
previous?()
click to toggle source
# File lib/honeybadger-api/paginator.rb, line 30 def previous? !@prev_page_link.nil? end