class Taleo::Cursor
Pages through results of a search query
Attributes
client[R]
klass[R]
pagination[R]
resource[R]
results[R]
Public Class Methods
new(pagination, results, resource, klass, client)
click to toggle source
# File lib/taleo/cursor.rb, line 8 def initialize(pagination, results, resource, klass, client) @pagination = pagination @results = results @resource = resource @klass = klass @client = client end
Public Instance Methods
has_next?()
click to toggle source
# File lib/taleo/cursor.rb, line 22 def has_next? pagination.key?('next') end
has_previous?()
click to toggle source
# File lib/taleo/cursor.rb, line 26 def has_previous? pagination.key?('previous') end
has_self?()
click to toggle source
# File lib/taleo/cursor.rb, line 30 def has_self? pagination.key?('self') end
items()
click to toggle source
# File lib/taleo/cursor.rb, line 16 def items results.map do |i| klass.new(i.fetch(resource), client) end end
next_page()
click to toggle source
# File lib/taleo/cursor.rb, line 42 def next_page raise Taleo::Error.new('No further results') unless has_next? res = client.connection.get do |req| req.url pagination.fetch('next') end new_cursor(res) end
previous_page()
click to toggle source
# File lib/taleo/cursor.rb, line 52 def previous_page raise Taleo::Error.new('No prior results') unless has_previous? res = client.connection.get do |req| req.url pagination.fetch('previous') end new_cursor(res) end
self_page()
click to toggle source
# File lib/taleo/cursor.rb, line 34 def self_page res = client.connection.get do |req| req.url pagination.fetch('self') end new_cursor(res) end
Private Instance Methods
new_cursor(res)
click to toggle source
# File lib/taleo/cursor.rb, line 64 def new_cursor(res) data = JSON.parse(res.body) pagination = data.dig('response', 'pagination') results = data.dig('response', 'searchResults') Cursor.new(pagination, results, resource, klass, client) end