class DianPing

Constants

VERSION

Attributes

key[RW]
secret[RW]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/dian_ping.rb, line 15
def initialize(opts = {})
  @key, @secret = opts.values_at(:key, :secret)
end

Public Instance Methods

get(route, param = {}) click to toggle source

@param route [String] 请求的URL @param param [Hash] 传递的参数 @return [Hash]

@example

dp = DianPing.new(key: 'Your key', secret: 'Your secret')
dp.get('/v1/reservation/get_all_id_list', {city: '上海'})
# File lib/dian_ping.rb, line 27
def get(route, param = {})
  param[:sign]   = signature(param)
  param[:appkey] = @key
  self.class.get route, query: param
end

Private Instance Methods

method_missing(method_name, *args, &block) click to toggle source
Calls superclass method
# File lib/dian_ping.rb, line 45
def method_missing(method_name, *args, &block)
  super unless parameter.respond_to?(method_name)
  if args.empty?
    parameter.send(method_name)
  else
    parameter.send(method_name, args.first)
  end
end
parameter() click to toggle source
# File lib/dian_ping.rb, line 41
def parameter
  Parameter.new(self)
end
signature(param) click to toggle source

签名

# File lib/dian_ping.rb, line 36
def signature(param)
  plaintext = param.keys.sort.map{|k| "#{k}#{param[k]}"}.join
  Digest::SHA1.hexdigest("#{@key}#{plaintext}#{@secret}").upcase
end