Class: ConnectionStringConfigResolver
- Inherits:
-
ConfigResolver
show all
- Defined in:
- lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/connection_string_config_resolver.rb
Class Method Summary
collapse
build_connection_data, parse_tcp, try_parse_runtime
Class Method Details
._parse_key_values(line) ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/connection_string_config_resolver.rb', line 71
def self._parse_key_values(line)
result = {}
segments = line.split(";").map(&:strip).reject(&:empty?)
segments.each do |segment|
eq = segment.index("=")
if !eq || eq <= 0 || eq == segment.length - 1
puts "Ignoring malformed token '#{segment}' in line: #{line}"
next
end
key = segment[0...eq].strip.downcase
value = segment[eq + 1..-1].strip
if !key.empty?
result[key] = value
end
end
result
end
|
._set_license_key(line) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/connection_string_config_resolver.rb', line 51
def self._set_license_key(line)
eq = line.index("=")
if eq && eq > 0 && eq < line.length - 1
value_portion = line[eq + 1..-1].strip
semicolon = value_portion.index(";")
if semicolon && semicolon >= 0
value_portion = value_portion[0...semicolon].strip
end
hash_idx = value_portion.index("#")
if hash_idx && hash_idx >= 0
value_portion = value_portion[0...hash_idx].strip
end
slashes = value_portion.index("//")
if slashes && slashes >= 0
value_portion = value_portion[0...slashes].strip
end
ActivationHelper.temporary_license_key = value_portion
end
end
|
.add_configs(priority, connection_string_source) ⇒ Object
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
42
43
44
45
46
47
48
49
|
# File 'lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/connection_string_config_resolver.rb', line 8
def self.add_configs(priority, connection_string_source)
if connection_string_source.nil? || connection_string_source.strip.empty?
raise "Connection string source cannot be null or empty."
end
normalized = connection_string_source.gsub("\r\n", "\n").gsub("\r", "\n")
lines = normalized.split("\n").map(&:strip).reject(&:empty?)
lines.each do |line|
if line.start_with?("#") || line.start_with?("//")
next
end
if line.downcase.start_with?("licensekey")
ConnectionStringConfigResolver._set_license_key(line)
next
end
begin
key_values = ConnectionStringConfigResolver._parse_key_values(line)
config_name = key_values["name"]
runtime_value = key_values["runtime"]
if config_name.nil? || config_name.strip.empty?
raise "Missing or empty config name."
end
if runtime_value.nil? || runtime_value.strip.empty?
raise "Missing or empty runtime."
end
runtime_name = ConfigResolver.try_parse_runtime(runtime_value)
host_value = key_values["host"]
connection_data = ConfigResolver.build_connection_data(host_value)
plugins = key_values["plugins"] || ""
modules = key_values["modules"] || ""
config = Config.new(runtime_name, connection_data, plugins, modules)
ConfigsDictionary.add_config(config_name, priority, config)
rescue => ex
puts "Failed to parse config line: '#{line}'. Reason: #{ex}"
raise
end
end
end
|