class Taobao::TOP::Service
Attributes
options[R]
params[R]
response[R]
Public Class Methods
new(*args) { |options| ... }
click to toggle source
# File lib/taobao/top/service.rb, line 61 def initialize *args, &block @options = TOP::Options.default.dup.merge(args.extract_options!) @app_key, @app_secret = args.slice!(0,2) raise ArgumentError.new "app_key or app_secret missing!" unless @app_key && @app_secret yield @options if block_given? end
Public Instance Methods
get(method, *args)
click to toggle source
# File lib/taobao/top/service.rb, line 68 def get method, *args invoke method, :get, *args end
post(method, *args)
click to toggle source
# File lib/taobao/top/service.rb, line 72 def post method, *args invoke method, :post, *args end
Private Instance Methods
invoke(method, http_method, *args)
click to toggle source
# File lib/taobao/top/service.rb, line 84 def invoke method, http_method, *args prepare_params @options.merge(args.extract_options!).merge(method: method) begin raw_response = case http_method when :get then RestClient.get [TOP.gateways[:site], @params.to_query].join("?") when :post then RestClient.post TOP.gateways[:site], @params end @response = case @params.format.to_s.downcase when 'json' TOP::Response.from_json(raw_response) when 'xml' TOP::Response.from_xml(raw_response) else raw_response end rescue Exception => e RestClient.create_log("stderr") << e end end
prepare_params(params)
click to toggle source
# File lib/taobao/top/service.rb, line 77 def prepare_params params @params = TOP::Params.new params @params.app_key = @app_key @params.timestamp = Time.now.strftime('%Y-%m-%d %H:%M:%S') @params.sign! @app_secret end