class CloudstackClient::Client
Attributes
Public Class Methods
Source
# File lib/cloudstack_client/client.rb 13 def initialize(api_url, api_key, secret_key, options = {}) 14 super(api_url, api_key, secret_key, options) 15 define_api_methods unless options[:no_api_methods] 16 end
Calls superclass method
Public Instance Methods
Source
# File lib/cloudstack_client/client.rb 18 def define_api_methods 19 @api = Api.new(@options) 20 @api.commands.each do |name, command| 21 method_name = camel_case_to_underscore(command["name"]).to_sym 22 23 define_singleton_method(method_name) do |args = {}, options = {}| 24 params = { "command" => command["name"] } 25 26 args.each do |k, v| 27 k = k.to_s.gsub("_", "") 28 if v && @api.command_supports_param?(command["name"], k) 29 params[k] = v 30 end 31 end 32 33 unless @api.all_required_params?(command["name"], params) 34 raise ParameterError, @api.missing_params_msg(command["name"]) 35 end 36 37 if command["isasync"] == false || options[:sync] 38 send_request(params) 39 else 40 send_async_request(params) 41 end 42 end 43 end 44 end