module Firebase::UseFaraday

Attributes

connection[R]

Public Class Methods

included(_base) click to toggle source
# File lib/firebase/use_faraday.rb, line 5
def self.included(_base)
  remove_method :process
end
new(base_uri, auth = nil) { |conn| ... } click to toggle source
Calls superclass method
# File lib/firebase/use_faraday.rb, line 11
def initialize(base_uri, auth = nil)
  super
  default_headers = { 'Content-Type' => 'application/json' }
  @connection = Faraday.new(url: @request.base_url, headers: default_headers) do |conn|
    conn.request :json
    conn.response :json
    yield conn if block_given?
  end
  @request = @connection
end

Private Instance Methods

process(verb, path, data = nil, query = {}) click to toggle source
# File lib/firebase/use_faraday.rb, line 24
def process(verb, path, data = nil, query = {})
  if path[0] == '/'
    raise(ArgumentError.new("Invalid path: #{path}. Path must be relative"))
  end

  response = @connection.public_send(verb) do |request|
    request.url "#{path}.json"
    request.body = data && data.to_json
    request.params = (@secret ? { auth: @secret }.merge(query) : query)
  end

  Firebase::Response.new response
end