class UCloud::Client
Public Class Methods
new(public_key, private_key, region)
click to toggle source
# File lib/ucloud/client.rb, line 9 def initialize(public_key, private_key, region) @public_key, @private_key, @region = public_key, private_key, region @uri = URI(UCloud::SERVER_URI) end
Public Instance Methods
execute(action, parameters = {})
click to toggle source
# File lib/ucloud/client.rb, line 14 def execute(action, parameters = {}) params = parameters.inject({}) do |memo, pair| if pair[1].is_a?(Array) pair[1].each_with_index{|e, i| memo[[pair[0],i].join('.').to_sym] = e} else memo[pair[0].to_sym] = pair[1] end memo end params[:Region] ||= @region params.merge!(Action: action, PublicKey: @public_key) res = Net::HTTP.post_form(@uri, sign(params)) JSON.parse(res.body) end
Private Instance Methods
sign(params)
click to toggle source
# File lib/ucloud/client.rb, line 31 def sign(params) params.merge!(Signature: Digest::SHA1.hexdigest(params.sort.flatten.join + @private_key)) end