class RMeetup::Collection
Attributes
current_page[W]
page_size[RW]
total_results[RW]
Public Class Methods
build(response)
click to toggle source
# File lib/rmeetup/collection.rb, line 6 def self.build(response) collection = Collection.new() # Setup the attributes needed for WillPaginate style paging request_url = response['meta']['url'] request_parameters = parse_parameters_from_url(request_url) collection.page_size = request_parameters['page'] ? request_parameters['page'].to_i : nil collection.total_results = response['meta']['total_count'].to_i collection.current_page = request_parameters['offset'] ? (request_parameters['offset'].to_i + 1) : 1 # Load the collection with all # of the results we passed in response['results'].each do |result| collection << result end collection end
Protected Class Methods
parse_parameters_from_url(url)
click to toggle source
# File lib/rmeetup/collection.rb, line 47 def self.parse_parameters_from_url(url) query = URI.parse(url).query parameters = {} query.split("&").each do |kv| kv = kv.split("=") parameters[kv[0]] = kv[1] end parameters end
Public Instance Methods
current_page()
click to toggle source
next_page()
click to toggle source
# File lib/rmeetup/collection.rb, line 42 def next_page self.current_page == self.total_pages ? nil : self.current_page.to_i+1 end
previous_page()
click to toggle source
# File lib/rmeetup/collection.rb, line 38 def previous_page self.current_page == 1 ? nil : self.current_page.to_i-1 end
total_pages()
click to toggle source
# File lib/rmeetup/collection.rb, line 34 def total_pages @page_size ? (@total_results.to_f / @page_size.to_f).ceil : 1 end