Sha256: 9cb963a4fb139b69035159e3b844a44aadfd2cfc7b8fd3dbdbce528dc55cfeb5
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
require 'rest_client' require 'oauth' require 'json' require '<%= name %><%= suffix %>/rest_client_oauth' module <%= class_base %><%= class_suffix %> class Base attr_reader :client def initialize(config = <%= class_base %><%= class_suffix %>.client_config) @client = RestClient::Resource.new(config[:base_url], :user => config[:username], :password => config[:password], :oauth => config[:oauth], :headers => { :content_type => 'application/json', :accept => 'application/json' }) end def call(method, path, payload = nil) if payload && (method == :post || method == :put) # TODO: is this neccessary? RestClient converts it automaticaly for me. payload = payload.to_json end ret = client[path].send(*([method, payload].compact)) data = begin JSON.parse(ret.body) rescue JSON::ParserError ret.body end return data, ret end def validate_params!(options, valid_keys) return unless options.is_a?(Hash) invalid_keys = options.keys - (valid_keys.is_a?(Hash) ? valid_keys.keys : valid_keys) raise ArgumentError, "Invalid keys: #{invalid_keys.join(", ")}" unless invalid_keys.empty? if valid_keys.is_a? Hash valid_keys.each do |key, keys| if options[key] validate_params!(options[key], keys) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
apipie-rails-0.0.9 | lib/apipie/client/template/base.rb.tt |