class Taobao::TOP::Params

Attributes

signature[R]

Public Instance Methods

sign!(secret) click to toggle source
# File lib/taobao/top/service.rb, line 17
def sign! secret
  str = self.select{|k,v| !multipart?(v) }.sort_by{|k,v| k.to_s }.collect{|i| i.join }.join
  @signature = case self.sign_method.to_s.downcase
  when 'md5' then Digest::MD5.hexdigest("#{secret}#{str}#{secret}").upcase
  when 'hmac' then Digest::HMAC.hexdigest(str, secret, Digest::MD5).upcase
  else ""
  end
  self.sign = @signature
end

Private Instance Methods

multipart?(obj) click to toggle source
# File lib/taobao/top/service.rb, line 28
def multipart? obj
  obj.respond_to?(:path) && obj.respond_to?(:read)
end