Module: Microkit
- Defined in:
- lib/microkit.rb,
lib/microkit/item.rb,
lib/microkit/group.rb,
lib/microkit/config.rb,
lib/microkit/permit.rb,
lib/microkit/version.rb,
lib/microkit/microkit.rb,
lib/microkit/publisher.rb,
lib/microkit/config_item.rb,
lib/microkit/http_client.rb,
lib/microkit/feature_item.rb,
lib/microkit/network_controller.rb
Defined Under Namespace
Classes: Config, ConfigItem, Error, FeatureItem, Group, HttpClient, Item, Microkit, NetworkController, Permit, Publisher, Subscription
Constant Summary
collapse
- VERSION =
"0.1.12"
Class Method Summary
collapse
Class Method Details
.clean_base64_padding(base64_string) ⇒ Object
64
65
66
|
# File 'lib/microkit/microkit.rb', line 64
def self.clean_base64_padding(base64_string)
base64_string.end_with?("==") ? base64_string[0..-3] : base64_string
end
|
.decrypt(encrypted, key) ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/microkit/microkit.rb', line 53
def self.decrypt (encrypted, key)
cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")
cipher.decrypt
cipher.key = Base64.urlsafe_decode64(key)
cipher.iv = Base64.urlsafe_decode64(encrypted)[0..15]
encrypted = Base64.urlsafe_decode64(encrypted)[16..-1]
decrypted = cipher.update(encrypted) + cipher.final
return decrypted
end
|
.initialize_kit(key, user = {}, options = {}) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/microkit/microkit.rb', line 4
def self.initialize_kit (key, user = {}, options = {})
secret_size = 24
sdk_key = key[0..key.length-secret_size-2]
secret = key[-secret_size..-1]
options["api_key"] = sdk_key
options["user"] = user
Config.instance.init(options)
res = NetworkController.instance.get_latest_data('init')
res = JSON.parse(res)
config = JSON.parse(self.decrypt(self.clean_base64_padding(res["config"]), secret))
Config.instance.set("key_vars_values", res["key_vars_values"])
Microkit.instance.instance_variable_set("@config_kit", Group.new("config", config))
Microkit.instance.instance_variable_set("@features_kit", Group.new("features", res["features"]))
Microkit.instance.instance_variable_set("@permissions_kit", Permit.new(Config.instance))
Microkit.instance.class.module_eval { attr_accessor :config_kit}
Microkit.instance.class.module_eval { attr_accessor :features_kit}
Microkit.instance.class.module_eval { attr_accessor :permissions_kit}
published = Proc.new do |current_val, prev_val|
res = JSON.parse(current_val)
config = JSON.parse(self.decrypt(self.clean_base64_padding(res["config"]), secret))
Microkit.instance.config_kit.update(config)
Microkit.instance.features_kit.update(res["features"])
end
Microkit.instance.subscription = NetworkController.instance.change.subscribe(published)
if Config.instance.get("polling_on") then
NetworkController.instance.start_update_interval
end
return Microkit.instance
end
|
.kit_ready ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/microkit/microkit.rb', line 43
def self.kit_ready
if Microkit.instance.instance_variable_defined?(:@config_kit) then
Microkit.instance
else
nil
end
end
|