Module: MmJsonClient
- Defined in:
- lib/mm_json_client.rb,
lib/mm_json_client/client.rb,
lib/mm_json_client/version.rb,
lib/mm_json_client/exceptions.rb,
lib/mm_json_client/generic_type.rb,
lib/mm_json_client/type_factory.rb,
lib/mm_json_client/response_code.rb,
lib/mm_json_client/enums/enum_factory.rb,
lib/mm_json_client/enums/generic_enum.rb,
lib/mm_json_client/http_client/client.rb,
lib/mm_json_client/json_rpc_http/error.rb,
lib/mm_json_client/json_rpc_http/client.rb,
lib/mm_json_client/json_rpc_http/response.rb,
lib/mm_json_client/json_rpc_http/exceptions.rb
Overview
Configure the environment so the gem works.
Defined Under Namespace
Modules: Enums, HttpClient, JsonRpcHttp, ResponseCode
Classes: Client, GenericType, ServerConnectionError, ServerError, TypeFactory
Constant Summary
collapse
- VERSION =
'2.0.0'.freeze
Class Method Summary
collapse
Class Method Details
.api_def_dir ⇒ Object
25
26
27
28
|
# File 'lib/mm_json_client.rb', line 25
def api_def_dir
return ENV['API_DEF_DIR'] if ENV['API_DEF_DIR']
default_api_def_dir
end
|
.default_api_def_dir ⇒ Object
30
31
32
|
# File 'lib/mm_json_client.rb', line 30
def default_api_def_dir
File.join(this_dir, 'mm_json_client', 'api_definitions')
end
|
.define_api_methods ⇒ Object
54
55
56
57
58
59
60
|
# File 'lib/mm_json_client.rb', line 54
def define_api_methods
method_file = File.join(api_def_dir, 'methods.json')
all_methods = JSON.parse(File.read(method_file))
dynamic_methods(all_methods).each do |method, return_type|
MmJsonClient::Client.define_api_method(method, return_type)
end
end
|
.dynamic_methods(methods) ⇒ Object
50
51
52
|
# File 'lib/mm_json_client.rb', line 50
def dynamic_methods(methods)
methods.reject { |k, _v| static_methods.include?(k) }
end
|
.initialize_environment ⇒ Object
Dynamically load the enums, methods and types from the default api definitions or those put in the directory provided in the environment variable API_DEF_DIR.
14
15
16
17
18
|
# File 'lib/mm_json_client.rb', line 14
def self.initialize_environment
load_type_data
load_enum_data
define_api_methods
end
|
.load_enum_data ⇒ Object
40
41
42
43
44
|
# File 'lib/mm_json_client.rb', line 40
def load_enum_data
enum_file = File.join(api_def_dir, 'enums.json')
enums = JSON.parse(File.read(enum_file))
MmJsonClient::Enums::EnumFactory.load_enums(enums)
end
|
.load_type_data ⇒ Object
34
35
36
37
38
|
# File 'lib/mm_json_client.rb', line 34
def load_type_data
type_file = File.join(api_def_dir, 'types.json')
types = JSON.parse(File.read(type_file))
MmJsonClient::TypeFactory.load_types(types)
end
|
.static_methods ⇒ Object
46
47
48
|
# File 'lib/mm_json_client.rb', line 46
def static_methods
%w(Login Logout)
end
|
.this_dir ⇒ Object
21
22
23
|
# File 'lib/mm_json_client.rb', line 21
def this_dir
File.dirname(File.expand_path(__FILE__))
end
|