class MagicBell::ApiResourceCollection
Attributes
response[R]
response_hash[R]
Public Class Methods
new(client, query_params = {})
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 3 def initialize(client, query_params = {}) @client = client @query_params = query_params @retrieved = false end
Public Instance Methods
authentication_headers()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 34 def authentication_headers MagicBell.authentication_headers end
current_page()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 59 def current_page retrieve_unless_retrieved response_hash["current_page"] end
each(&block)
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 38 def each(&block) resources.each(&block) end
each_page() { |current_page| ... }
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 42 def each_page current_page = self loop do yield(current_page) break if current_page.last_page? current_page = current_page.next_page end end
first()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 26 def first resources.first end
last_page?()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 51 def last_page? current_page == total_pages end
next_page()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 55 def next_page self.class.new(@client, page: current_page + 1, per_page: per_page) end
per_page()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 69 def per_page retrieve_unless_retrieved response_hash["per_page"] end
retrieve()
click to toggle source
@todo Add examples
# File lib/magicbell/api_resource_collection.rb, line 10 def retrieve @response = @client.get( url, query: @query_params ) @response_hash = JSON.parse(response.body) @resources = response_hash[name].map { |resource_attributes| resource_class.new(@client, resource_attributes) } @retrieved = true self end
to_a()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 22 def to_a resources end
total_pages()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 64 def total_pages retrieve_unless_retrieved response_hash["total_pages"] end
url()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 30 def url MagicBell.api_host + path end
Private Instance Methods
resources()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 79 def resources retrieve_unless_retrieved return @resources end
retrieve_unless_retrieved()
click to toggle source
# File lib/magicbell/api_resource_collection.rb, line 84 def retrieve_unless_retrieved return if @retrieved retrieve end