Sha256: 73a3bd9c531da3ddea7564beaafb3e20cdbb04a5fff2694d6083932251fa4614
Contents?: true
Size: 1.11 KB
Versions: 10
Compression:
Stored size: 1.11 KB
Contents
module Fire module Connection class Request require 'httpclient' require 'json' def initialize @client = HTTPClient.new(base_url: Fire.config.base_uri) @client.default_header['Content-Type'] = 'application/json' end [ :get, :delete ].each do |method_type| method = <<METHOD def #{method_type}(path, query={}) process(:#{method_type}, path, query) end METHOD class_eval(method) end [ :post, :put, :patch ].each do |method_type| method = <<METHOD def #{method_type}(path, value, query={}) process(:#{method_type}, path, query, value.to_json) end METHOD class_eval(method) end alias_method :set, :put protected def process(method, path, query={}, body=nil) response = @client.request(method, "#{path}.json", body: body, query: prepare_options(query), follow_redirect: true) Fire::Connection::Response.new(response) end def prepare_options(query_options) query_options.merge(Fire.config.auth) end end end end
Version data entries
10 entries across 10 versions & 1 rubygems