Sha256: 373d858fd7a4af5777d518b5bccf7f02d7cd65100db0eb99b25edb39d9f48e43
Contents?: true
Size: 1.74 KB
Versions: 2
Compression:
Stored size: 1.74 KB
Contents
require 'faraday' require 'simple_oauth' require 'uri' require 'plurky/configurable' module Plurky class Client include Plurky::Configurable # Initializes a new Client object # # @param options [Hash] # @return [Plurky::Client] def initialize(options = {}) Plurky::Configurable.keys.each do |key| instance_variable_set(:"@#{key}", options[key] || Plurky.instance_variable_get(:"@#{key}")) end end # Perform an HTTP GET request def get(path, params = {}) request(:get, path, params) end # Perform an HTTP POST request def post(path, params = {}) request(:post, path, params) end private # Returns a Faraday::Connection object # # @return [Faraday::Connection] def connection @connection ||= Faraday.new(@endpoint, @connection_options.merge(:builder => @middleware)) end # Perform an HTTP request def request(method, path, params = {}) request_headers = {} if credentials? uri = URI(@endpoint) + path authorization = auth_header(method, uri, params) request_headers[:authorization] = authorization.to_s end response = connection.run_request(method, path, nil, request_headers) do |request| unless params.empty? case request.method when :post, :put request.body = params else request.params.update(params) end end end response.env end def auth_header(method, uri, params = {}) signature_params = [:post, :put].include?(method) && params.values.any? { |value| value.respond_to?(:to_io) } ? {} : params SimpleOAuth::Header.new(method, uri, signature_params, credentials) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
plurky-0.1.1 | lib/plurky/client.rb |
plurky-0.1.0 | lib/plurky/client.rb |