class SimpleFirebase::Client
Constants
- DEFAULT_PAGE_SIZE
Attributes
key[R]
uri[R]
Public Class Methods
new(uri, key)
click to toggle source
# File lib/simple_firebase/client.rb, line 12 def initialize(uri, key) @uri = uri @key = key end
Public Instance Methods
fetch(resource, key, value, page_size)
click to toggle source
# File lib/simple_firebase/client.rb, line 30 def fetch(resource, key, value, page_size) uri = construct_uri(resource, key, value, page_size) r = SimpleFirebase::Response.new(Net::HTTP.get_response(uri)) raise SimpleFirebase::Exceptions::FirebaseError r.body unless r.success? r.json_body end
fetch_single(resource, key, value)
click to toggle source
# File lib/simple_firebase/client.rb, line 17 def fetch_single(resource, key, value) raw = fetch(resource, key, value, 1).values.first if raw if raw[key] == value raw else nil end else nil end end
Private Instance Methods
construct_uri(resource, order_by, start_at, page_size)
click to toggle source
# File lib/simple_firebase/client.rb, line 42 def construct_uri(resource, order_by, start_at, page_size) q = { auth: @key, limitToFirst: page_size || DEFAULT_PAGE_SIZE } q[:orderBy] = '"' + order_by + '"' if order_by q[:startAt] = '"' + start_at.to_s + '"' uri = URI("#{@uri}#{resource}.json") uri.query = URI.encode_www_form q uri end