Skip to content

Instantly share code, notes, and snippets.

@whoisjake
Created June 12, 2013 21:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save whoisjake/5769392 to your computer and use it in GitHub Desktop.
Save whoisjake/5769392 to your computer and use it in GitHub Desktop.
Extend the clever-ruby gem to fetch all the pages
require 'clever-ruby'
module CleverExt
def all_pages(filters={})
page_count = 1000
page_n = 1
filters[:limit] = page_count
filters[:page] = page_n
objects = []
page = all(filters)
objects += page
puts "Fetched #{page.size}/#{objects.size} (page #{page_n}) of #{self.name.gsub("Clever::","")}" if ENV["DEBUG"]
while page.size == page_count
page_n += 1
filters[:page] = page_n
page = all(filters)
objects += page
puts "Fetched #{page.size}/#{objects.size} (page #{page_n}) of #{self.name.gsub("Clever::","")}" if ENV["DEBUG"]
end
objects.compact
end
end
module Clever
class District < APIResource
extend CleverExt
end
class School < APIResource
extend CleverExt
end
class Teacher < APIResource
extend CleverExt
end
class Student < APIResource
extend CleverExt
end
class Section < APIResource
extend CleverExt
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment