class Polar::Cursor
Constants
- ITEMS_PER_PAGE
Public Class Methods
new(api_key, secret_key, session_key, domain_klass, params)
click to toggle source
# File lib/polar/cursor.rb, line 6 def initialize(api_key, secret_key, session_key, domain_klass, params) @api_key, @secret_key, @session_key, @domain_klass, @params = api_key, secret_key, session_key, domain_klass, params @current_page = 0 @fetched_current_page = false end
Public Instance Methods
[](index)
click to toggle source
# File lib/polar/cursor.rb, line 35 def [](index) fetch_current_page if !@fetched_current_page @items[index] end
each(&block)
click to toggle source
Each will return the first page of results
# File lib/polar/cursor.rb, line 13 def each(&block) @current_page += 1 fetch_current_page if !@fetched_current_page @items.each { |i| block.call i } @fetched_current_page = false end
next_page?()
click to toggle source
# File lib/polar/cursor.rb, line 20 def next_page? if @items return @items.count >= ITEMS_PER_PAGE elsif !@items && @current_page == 0 return true else raise("Items are nil and they should not be.") end end
total_items()
click to toggle source
# File lib/polar/cursor.rb, line 30 def total_items fetch_current_page if @total_items.nil? @total_items end
Private Instance Methods
fetch_current_page()
click to toggle source
# File lib/polar/cursor.rb, line 47 def fetch_current_page params = @params.merge({ :page => @current_page, :count => ITEMS_PER_PAGE }) response = page_request(params) @items = [] response.each do |response_item| @items << @domain_klass.new(response_item) end @fetched_current_page = true end
page_request(params)
click to toggle source
# File lib/polar/cursor.rb, line 42 def page_request(params) request = Polar::Request.new(@api_key, @secret_key, @session_key, params) request.response end