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