18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/digitalocean/concerns/class_methods.rb', line 18
def bind(api, object, klass)
raise "#{klass} is not API object" unless klass.respond_to?(:api)
klass.api.each do |name, params|
variables = Addressable::Template.new(params[:path]).variables
if variables.empty? && !object.respond_to?(name)
object.def name do
api.op klass.send(name)
end
end
if variables.size == 1
var_name = variables.first
object.def name do |value|
api.op klass.send(name, params: {var_name => value})
end
end
if variables.size == 2
var_name1 = variables.first
var_name2 = variables.last
object.def name do |var1, var2|
api.op klass.send(name, params: { var_name1 => var1, var_name2 => var2 })
end
end
end
end
|