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
42
43
44
|
# File 'lib/scc_ruby.rb', line 7
def self.fetch(config_server_url, app_name, app_env = 'default')
uri = URI(build_url(config_server_url, app_name, app_env))
res = Net::HTTP.get_response(uri)
if res.code != '200'
raise "Fail to fetch from spring cloud config server, http code #{res.code}, message #{res.message}"
end
json = JSON.parse(res.body)
h = json['propertySources'].inject(:merge!)['source']
arr_keys = []
h.keys.each do |k|
sp = k.split(/\[\d+/)
arr_keys << sp[0] if (sp.size > 1) && (sp[1] == ']')
end
arr_keys.each do |k|
h[k] = []
end
h.each do |k, v|
next if v.is_a?(Array)
arr_keys.each do |ak|
if k.split(/\[\d+/)[0] == ak
h[ak] << v
h.delete(k)
end
end
end
h
end
|