module Kucoin::Api::Endpoints
Public Class Methods
endpoint_method(client_klass, name, result, parent_var = nil)
click to toggle source
# File lib/kucoin/api/endpoints.rb, line 86 def self.endpoint_method client_klass, name, result, parent_var = nil child_endpoint_klass = Endpoints.get_klass(name, (parent_var && parent_var.class)) if parent_var parent_var.define_singleton_method name do endpoint_var = "@#{name}" var = instance_variable_get(endpoint_var) || instance_variable_set(endpoint_var, child_endpoint_klass.new(parent_var.client)) client_klass.generate_endpoint_methods result: result, parent_var: var var end else client_klass.class_exec do define_method name do endpoint_var = "@#{name}" var = instance_variable_get(endpoint_var) || instance_variable_set(endpoint_var, child_endpoint_klass.new(self)) client_klass.generate_endpoint_methods result: result, parent_var: var var end end end end
get_klass(name, parent=nil)
click to toggle source
# File lib/kucoin/api/endpoints.rb, line 82 def self.get_klass name, parent=nil Object.const_get("#{parent || 'Kucoin::Api::Endpoints'}::#{name.to_s.split('_').map(&:capitalize).join}") end
Public Instance Methods
generate_endpoint_methods(result: ENDPOINTS, parent_var: nil)
click to toggle source
# File lib/kucoin/api/endpoints.rb, line 108 def generate_endpoint_methods result: ENDPOINTS, parent_var: nil result.each do |endpoint_name, _result| if _result.is_a?(Hash) Kucoin::Api::Endpoints.endpoint_method(self, endpoint_name, _result, parent_var) end end end