class Odnoklassniki::Client
Public Class Methods
new(attrs= {})
click to toggle source
# File lib/odnoklassniki/client.rb, line 6 def initialize(attrs= {}) attrs = Odnoklassniki.options.merge(attrs) Config::VALID_OPTIONS_KEYS.each do |key| instance_variable_set("@#{key}".to_sym, attrs[key]) end @refreshed = false end
Public Instance Methods
get(method, params={}, &block)
click to toggle source
# File lib/odnoklassniki/client.rb, line 14 def get(method, params={}, &block) request_method(:get, method, params, block) end
post(method, params={}, &block)
click to toggle source
# File lib/odnoklassniki/client.rb, line 18 def post(method, params={}, &block) request_method(:post, method, params, block) end
refresh_token!()
click to toggle source
# File lib/odnoklassniki/client.rb, line 22 def refresh_token! @refreshed = true data = request.post('/oauth/token.do', refresh_credentials) @request = nil @access_token = data['access_token'] end
Private Instance Methods
credentials()
click to toggle source
# File lib/odnoklassniki/client.rb, line 68 def credentials { access_token: @access_token, client_secret: @client_secret, application_key: @application_key } end
fallback(params)
click to toggle source
# File lib/odnoklassniki/client.rb, line 31 def fallback(params) [params.delete(:method), params] end
method_path(method)
click to toggle source
# File lib/odnoklassniki/client.rb, line 35 def method_path(method) if method.start_with?('api') "/#{method}" elsif method.start_with?('/api') method elsif method.start_with?('/') "/api#{method}" else "/api/#{method}" end.gsub('.', '/') end
refresh_credentials()
click to toggle source
# File lib/odnoklassniki/client.rb, line 47 def refresh_credentials { refresh_token: @access_token, grant_type: 'refresh_token', client_id: @client_id, client_secret: @client_secret } end
request()
click to toggle source
# File lib/odnoklassniki/client.rb, line 63 def request refresh_token! unless @refreshed @request ||= Request.new(credentials) end
request_method(http_method, method, params, block)
click to toggle source
# File lib/odnoklassniki/client.rb, line 56 def request_method(http_method, method, params, block) method, params = fallback(method) if method.is_a?(Hash) response = request.send(http_method, method_path(method), params) response = block.call response if block response end