Class: UCloud::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/ucloud/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(public_key, private_key, region) ⇒ Client

Returns a new instance of Client.



9
10
11
12
# 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

Instance Method Details

#execute(action, parameters = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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