singleton-client-test 0.7.0.27 → 0.7.0.31

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0989ae16ca4fcfd6088931a367ac5eb671fd8e087a8d9e32539a2480d1107b34'
4
- data.tar.gz: d750961a5b1c116914f50a947626e0fc4e8a391b3fa28b8e2a77e3651c823ba2
3
+ metadata.gz: d36c7df9764afccdd5c3e9ca3dac5123bd9feaedd3ada0a38e386836860f8885
4
+ data.tar.gz: 9cc9248d0b25744fa3168711040e740f9c07124e60a55a9f0b73150a630ca1c4
5
5
  SHA512:
6
- metadata.gz: 89e893c6f79dde564732300a4431581effb0dc6aeb7eb3f8fc665c8108d4eaf0292a64e962da259f931c9ebf21299ae05d0db4cac427ec78c5a50c3c81d9a562
7
- data.tar.gz: fd50009cbda5e06c8e1a3d7f81ec02c6b1d060fec95d6824b8e8713f33c48acad660be1e276ee565403cc8eda5abcf9d8f6f0faa936b895ceb9cef29feec0dbd
6
+ metadata.gz: f7d9c3d03d862fa00b6e75ad17e3d6ebf6382750bdf41630708136439980ee0ee9cbb07768f19f71f0b23ba2c2f3c2dba5e50e4d9afc136b26aa96f326076d89
7
+ data.tar.gz: 0c3b4dbe2f24634090f997b3d980aa7b0a85c41485bd553020fd3e41e196947a3f2a0b27a12da3d87439ecaaee7b903542df4fbbbb4b23ee0021d01ceda96eb5
@@ -6,18 +6,18 @@ module SgtnClient
6
6
  class Source
7
7
 
8
8
  def self.getSource(component, key, locale)
9
+ SgtnClient.logger.debug "[Source][getSource]component=#{component}, key=#{key}, locale=#{locale}"
9
10
  cache_key = SgtnClient::CacheUtil.get_cachekey(component, locale)
10
- items = SgtnClient::CacheUtil.get_cache(cache_key)
11
+ expired, items = SgtnClient::CacheUtil.get_cache(cache_key)
11
12
  if items.nil?
12
- items = getBundle(component, locale)
13
- SgtnClient.logger.debug "Putting sources items into cache with key: " + cache_key
13
+ items = getBundle(component, locale)
14
14
  SgtnClient::CacheUtil.write_cache(cache_key, items)
15
15
  else
16
- SgtnClient.logger.debug "Getting sources from cache with key: " + cache_key
16
+ SgtnClient.logger.debug "[Source][getSource]getting sources from cache with key: " + cache_key
17
17
  end
18
- s = items[locale][key]
18
+ s = items.nil?? nil : items[locale][key]
19
19
  if items.nil? || s.nil?
20
- SgtnClient.logger.debug "Source not found, return key: " + key
20
+ SgtnClient.logger.debug "[Source][getSource]source not found, return key: " + key
21
21
  #return key
22
22
  return nil
23
23
  else
@@ -26,23 +26,23 @@ module SgtnClient
26
26
  end
27
27
 
28
28
  def self.getSources(component, locale)
29
+ SgtnClient.logger.debug "[Source][getSources]component=#{component}, locale=#{locale}"
29
30
  cache_key = SgtnClient::CacheUtil.get_cachekey(component, locale)
30
- items = SgtnClient::CacheUtil.get_cache(cache_key)
31
- if items.nil?
31
+ expired, items = SgtnClient::CacheUtil.get_cache(cache_key)
32
+ if items.nil? || expired
32
33
  items = getBundle(component, locale)
33
- SgtnClient.logger.debug "Putting sources items into cache with key: " + cache_key
34
34
  SgtnClient::CacheUtil.write_cache(cache_key, items)
35
35
  else
36
- SgtnClient.logger.debug "Getting sources from cache with key: " + cache_key
36
+ SgtnClient.logger.debug "[Source][getSources]getting sources from cache with key: " + cache_key
37
37
  end
38
38
  return items
39
39
  end
40
40
 
41
41
  def self.loadBundles(locale)
42
+ SgtnClient.logger.debug "[Source][loadBundles]locale=#{locale}"
42
43
  env = SgtnClient::Config.default_environment
43
44
  SgtnClient::Config.configurations.default = locale
44
45
  source_bundle = SgtnClient::Config.configurations[env]["source_bundle"]
45
- SgtnClient.logger.debug "Loading [" + locale + "] source bundles from path: " + source_bundle
46
46
  Dir.foreach(source_bundle) do |component|
47
47
  next if component == '.' || component == '..'
48
48
  yamlfile = File.join(source_bundle, component + "/" + locale + ".yml")
@@ -54,10 +54,10 @@ module SgtnClient
54
54
 
55
55
  private
56
56
  def self.getBundle(component, locale)
57
+ SgtnClient.logger.debug "[Source][getBundle]component=#{component}, locale=#{locale}"
57
58
  env = SgtnClient::Config.default_environment
58
59
  source_bundle = SgtnClient::Config.configurations[env]["source_bundle"]
59
60
  bundlepath = source_bundle + "/" + component + "/" + locale + ".yml"
60
- SgtnClient.logger.debug "Getting source from bundle: " + bundlepath
61
61
  begin
62
62
  bundle = SgtnClient::FileUtil.read_yml(bundlepath)
63
63
  rescue => exception
@@ -12,17 +12,26 @@ module SgtnClient
12
12
  class Translation
13
13
 
14
14
  def self.getString(component, key, locale)
15
+ SgtnClient.logger.debug "[Translation.getString]component: #{component}, key: #{key}, locale: #{locale}"
15
16
  str = getTranslation(component, key, locale)
16
17
  if str.nil?
17
18
  str = SgtnClient::Source.getSource(component, key, SgtnClient::Config.configurations.default)
19
+ if str.nil?
20
+ SgtnClient.logger.debug "[Translation][getString] Missing source string with key: #{key}, component: #{component}, locale: #{locale}"
21
+ end
18
22
  end
19
23
  str
20
24
  end
21
25
 
22
26
  def self.getString_p(component, key, plural_args, locale)
27
+ SgtnClient.logger.debug "[Translation][getString_p]component=#{component}, key=#{key}, locale=#{locale}"
23
28
  str = getTranslation(component, key, locale)
24
29
  if str.nil?
25
30
  str = SgtnClient::Source.getSource(component, key, SgtnClient::Config.configurations.default)
31
+ if str.nil?
32
+ SgtnClient.logger.debug "[Translation][getString_p] Missing source string with key: #{key}, component: #{component}, locale: #{locale}"
33
+ return nil
34
+ end
26
35
  str.to_plural_s(:en, plural_args)
27
36
  else
28
37
  str.to_plural_s(locale, plural_args)
@@ -30,7 +39,11 @@ module SgtnClient
30
39
  end
31
40
 
32
41
  def self.getString_f(component, key, args, locale, *optionals)
42
+ SgtnClient.logger.debug "[Translation][getString_f]component=#{component}, key=#{key}, locale=#{locale}"
33
43
  s = getString(component, key, locale, *optionals)
44
+ if s.nil?
45
+ return nil
46
+ end
34
47
  if args.is_a?(Hash)
35
48
  args.each do |source, arg|
36
49
  s.gsub! "{#{source}}", arg
@@ -42,15 +55,20 @@ module SgtnClient
42
55
  end
43
56
 
44
57
  def self.getStrings(component, locale)
58
+ SgtnClient.logger.debug "[Translation][getStrings]component=#{component}, locale=#{locale}"
45
59
  items = get_cs(component, locale)
46
60
  default = SgtnClient::Config.configurations.default
47
61
  if items.nil? || items["messages"] == nil
48
62
  items = {}
49
63
  s = SgtnClient::Source.getSources(component, default)
50
- default_component, value = s.first
51
- items["component"] = component
52
- items["messages"] = value
53
- items["locale"] = 'source'
64
+ if s.nil?
65
+ SgtnClient.logger.error "[Translation][getStrings] Missing component: #{component}, locale: #{locale}"
66
+ else
67
+ default_component, value = s.first
68
+ items["component"] = component
69
+ items["messages"] = value
70
+ items["locale"] = 'source'
71
+ end
54
72
  end
55
73
  return items
56
74
  end
@@ -68,10 +86,12 @@ module SgtnClient
68
86
  end
69
87
 
70
88
  def self.get_cs(component, locale)
89
+ locale = SgtnClient::LocaleUtil.process_locale(locale)
71
90
  flocale = SgtnClient::LocaleUtil.fallback(locale)
72
91
  cache_key = SgtnClient::CacheUtil.get_cachekey(component, flocale)
73
- items = SgtnClient::CacheUtil.get_cache(cache_key)
74
- if items.nil?
92
+ SgtnClient.logger.debug "[Translation][get_cs]cache_key=#{cache_key}"
93
+ expired, items = SgtnClient::CacheUtil.get_cache(cache_key)
94
+ if items.nil? || expired
75
95
  items = load(component, flocale)
76
96
  if items.nil?
77
97
  items = SgtnClient::Source.getSources(component, SgtnClient::Config.configurations.default)
@@ -80,7 +100,7 @@ module SgtnClient
80
100
  SgtnClient::CacheUtil.write_cache(cache_key, items)
81
101
  end
82
102
  else
83
- SgtnClient.logger.debug "Getting translations from cache with key: " + cache_key
103
+ SgtnClient.logger.debug "[Translation]get translations from cache with key: " + cache_key
84
104
  end
85
105
 
86
106
  return items
@@ -89,6 +109,7 @@ module SgtnClient
89
109
  def self.load(component, locale)
90
110
  env = SgtnClient::Config.default_environment
91
111
  mode = SgtnClient::Config.configurations[env]["bundle_mode"]
112
+ SgtnClient.logger.debug "[Translation][load]mode=#{mode}"
92
113
  if mode == 'offline'
93
114
  return load_o(component, locale)
94
115
  else
@@ -102,7 +123,6 @@ module SgtnClient
102
123
  version = SgtnClient::Config.configurations[env]["version"].to_s
103
124
  translation_bundle = SgtnClient::Config.configurations[env]["translation_bundle"]
104
125
  bundlepath = translation_bundle + "/" + product_name + "/" + version + "/" + component + "/messages_" + locale + ".json"
105
- SgtnClient.logger.debug "Getting translations from offline bundle: " + bundlepath
106
126
  SgtnClient::FileUtil.read_json(bundlepath)
107
127
  end
108
128
 
@@ -110,10 +130,8 @@ module SgtnClient
110
130
  env = SgtnClient::Config.default_environment
111
131
  product_name = SgtnClient::Config.configurations[env]["product_name"]
112
132
  vip_server = SgtnClient::Config.configurations[env]["vip_server"]
113
- SgtnClient.logger.debug "Getting translations from server: " + vip_server
114
133
  version = SgtnClient::Config.configurations[env]["version"].to_s
115
134
  url = vip_server + "/i18n/api/v2/translation/products/" + product_name + "/versions/" + version + "/locales/" + locale + "/components/" + component+ "?checkTranslationStatus=false&machineTranslation=false&pseudo=false"
116
- SgtnClient.logger.debug url
117
135
  begin
118
136
  obj = SgtnClient::Core::Request.get(url)
119
137
  rescue => exception
@@ -7,12 +7,12 @@ module SgtnClient::Core
7
7
  def self.initialize(disabled=false, opts={})
8
8
  @@opts = opts
9
9
  @mutex = Mutex.new
10
- SgtnClient.logger.debug "Initialize cache......"
11
10
  if disabled == false
12
11
  @@data = Hash.new
13
- SgtnClient.logger.debug "Cache is enabled!"
12
+ SgtnClient.logger.debug "[Cache][initialize]cache is enabled!"
14
13
  else
15
- SgtnClient.logger.debug "Cache is disabled!"
14
+ @@data = nil
15
+ SgtnClient.logger.debug "[Cache][initialize]cache is disabled!"
16
16
  end
17
17
  end
18
18
 
@@ -20,35 +20,34 @@ module SgtnClient::Core
20
20
  if @@data == nil
21
21
  return nil
22
22
  end
23
- SgtnClient.logger.debug "Get cache keys"
23
+ SgtnClient.logger.debug "[Cache][keys]get cache keys"
24
24
  @@data.keys
25
25
  end
26
26
 
27
27
  def self.get(key)
28
28
  if @@data == nil
29
- return nil
29
+ return nil, nil
30
30
  end
31
- SgtnClient.logger.debug "Get cache for key: " + key
32
- invalidate
33
- @@data[key][:value] if has(key)
31
+ SgtnClient.logger.debug "[Cache][get]get cache for key: " + key
32
+ invalidate(key)
34
33
  end
35
34
 
36
35
  def self.has(key)
37
36
  if @@data == nil
38
37
  return nil
39
38
  end
40
- SgtnClient.logger.debug "Has cache for key: " + key
39
+ SgtnClient.logger.debug "[Cache][has]check if the cache has key: #{(@@data.has_key? key)}"
41
40
  @@data.has_key? key
42
41
  end
43
42
 
44
43
  def self.put(key, value, ttl=nil)
45
44
  @mutex.synchronize do
46
- if @@data == nil
45
+ if @@data == nil || value == nil
47
46
  return nil
48
47
  end
49
48
  ttl ||= @@opts[:ttl]
50
49
  # hours from new
51
- SgtnClient.logger.debug "Put cache for key '" + key + "' with expired time at'" + (Time.now + ttl*60).to_s
50
+ SgtnClient.logger.debug "[Cache][put]put cache for key '" + key + "' with expired time at'" + (Time.now + ttl*60).to_s
52
51
  @@data[key] = Entry.new(Time.now + ttl*60, value)
53
52
  end
54
53
  end
@@ -58,7 +57,7 @@ module SgtnClient::Core
58
57
  if @@data == nil
59
58
  return nil
60
59
  end
61
- SgtnClient.logger.debug "Delete cache for key: " + key
60
+ SgtnClient.logger.debug "[Cache][delete]delete cache for key: " + key
62
61
  @@data.delete key
63
62
  end
64
63
  end
@@ -68,23 +67,32 @@ module SgtnClient::Core
68
67
  if @@data == nil
69
68
  return nil
70
69
  end
71
- SgtnClient.logger.debug "Clear cache!"
70
+ SgtnClient.logger.debug "[Cache][clear]clear cache!"
72
71
  @@data = Hash.new
73
72
  end
74
73
  end
75
74
 
76
- def self.invalidate
75
+ def self.invalidate(key)
77
76
  @mutex.synchronize do
78
77
  if @@data == nil
79
- return nil
78
+ return nil, nil
80
79
  end
81
- SgtnClient.logger.debug "Invalidating expired cache......"
80
+ SgtnClient.logger.debug "[Cache][invalidate]invalidate expired cache......"
82
81
  now = Time.now
83
- @@data.each {
84
- |k, v|
85
- SgtnClient.logger.debug "Checking cache: key=#{k}, expiredtime=#{v[:expiry]}, now=#{now}, expired=#{(v[:expiry] < now)}"
86
- }
87
- @@data.delete_if {|k, v| v[:expiry] < now}
82
+ if has(key)
83
+ v = @@data[key]
84
+ expired = false
85
+ SgtnClient.logger.debug "[Cache][invalidate]check cache: key=#{key}, expiredtime=#{v[:expiry]}, now=#{now}, expired=#{(v[:expiry] < now)}"
86
+ if v[:expiry] < now
87
+ SgtnClient.logger.debug "[Cache][invalidate]before deleting the cache: data=#{@@data}"
88
+ @@data.delete(key)
89
+ SgtnClient.logger.debug "[Cache][invalidate]after deleting the cache: data=#{@@data}"
90
+ expired = true
91
+ end
92
+ return expired, v[:value]
93
+ else
94
+ return nil, nil
95
+ end
88
96
  end
89
97
  end
90
98
  end
@@ -4,7 +4,7 @@ require 'multi_json'
4
4
  module SgtnClient::Core
5
5
  class Request
6
6
  def self.get(url)
7
- #res = RestClient.get(url)
7
+ SgtnClient.logger.debug "[Request][get]url=#{url}"
8
8
  res = RestClient::Resource.new(
9
9
  url,
10
10
  :verify_ssl => false
@@ -38,6 +38,7 @@ module SgtnClient
38
38
 
39
39
  # create log file
40
40
  file = './sgtnclient_d.log'
41
+ SgtnClient.logger.debug "[Client][load]create log file=#{file}"
41
42
  if args[2] != nil
42
43
  file = args[2]
43
44
  end
@@ -48,7 +49,7 @@ module SgtnClient
48
49
  # Set log level for sandbox mode
49
50
  env = SgtnClient::Config.default_environment
50
51
  mode = SgtnClient::Config.configurations[env]["mode"]
51
- SgtnClient.logger.info "Current mode is: " + mode
52
+ SgtnClient.logger.debug "[Client][load]set log level, mode=#{mode}"
52
53
  if mode == 'sandbox'
53
54
  SgtnClient.logger.level = Logger::DEBUG
54
55
  else
@@ -57,6 +58,7 @@ module SgtnClient
57
58
 
58
59
  # initialize cache
59
60
  disable_cache = SgtnClient::Config.configurations[env]["disable_cache"]
61
+ SgtnClient.logger.debug "[Client][load]cache initialize, disable_cache=#{disable_cache}"
60
62
  if disable_cache != nil
61
63
  SgtnClient::Core::Cache.initialize(disable_cache)
62
64
  else
@@ -10,21 +10,27 @@ module SgtnClient
10
10
  class CacheUtil
11
11
 
12
12
  def self.get_cache(cache_key)
13
- items = SgtnClient::Core::Cache.get(cache_key)
14
- return items
13
+ expired, items = SgtnClient::Core::Cache.get(cache_key)
14
+ SgtnClient.logger.debug "[CacheUtil]get cache with key #{cache_key}, expired #{expired}"
15
+ return expired, items
15
16
  end
16
17
 
17
18
  def self.clear_cache()
18
19
  SgtnClient::Core::Cache.clear()
20
+ SgtnClient.logger.debug "[CacheUtil]clear cache"
19
21
  end
20
22
 
21
23
  def self.write_cache(cache_key, items)
24
+ if items.nil?
25
+ return nil
26
+ end
22
27
  env = SgtnClient::Config.default_environment
23
28
  cache_expiry_period = SgtnClient::Config.configurations[env]["cache_expiry_period"]
24
29
  # expired after 24 hours
25
30
  if cache_expiry_period == nil
26
31
  cache_expiry_period = 24*60
27
32
  end
33
+ SgtnClient.logger.debug "[CacheUtil]write cache with key #{cache_key}, cache_expiry_period #{cache_expiry_period}, itmes #{items}"
28
34
  SgtnClient::Core::Cache.put(cache_key, items, cache_expiry_period)
29
35
  end
30
36
 
@@ -37,6 +43,7 @@ module SgtnClient
37
43
  default_l = 'en'
38
44
  end
39
45
  lc = locale == default_l ? SgtnClient::Config.configurations.default: locale
46
+ SgtnClient.logger.debug "[CacheUtil]get cache key: #{lc}"
40
47
  return product_name + "_" + version + "_" + component + "_" + lc
41
48
  end
42
49
  end
@@ -8,6 +8,7 @@ module SgtnClient
8
8
  @mutex = Mutex.new
9
9
 
10
10
  def self.read_json(bundlepath)
11
+ SgtnClient.logger.debug "[FileUtil]read json file from: " + bundlepath
11
12
  @mutex.synchronize do
12
13
  data_hash = nil
13
14
  begin
@@ -21,6 +22,7 @@ module SgtnClient
21
22
  end
22
23
 
23
24
  def self.read_yml(file_name)
25
+ SgtnClient.logger.debug "[FileUtil]read yml file from: " + file_name
24
26
  @mutex.synchronize do
25
27
  erb = ERB.new(File.read(file_name))
26
28
  erb.filename = file_name
@@ -10,6 +10,10 @@ module SgtnClient
10
10
  }
11
11
 
12
12
  class LocaleUtil
13
+ def self.process_locale(locale=nil)
14
+ locale ||= SgtnClient::Config.configurations.default
15
+ locale.to_s
16
+ end
13
17
  def self.fallback(locale)
14
18
  found = SgtnClient::DEFAULT_LOCALES.select {|e| e == locale}
15
19
  if !found.empty?
@@ -4,8 +4,8 @@ module SgtnClient
4
4
  class ValidateUtil
5
5
 
6
6
  def self.validate_config()
7
- SgtnClient.logger.debug "-----------Start to validate configuration's setting itmes-----------"
8
7
  env = SgtnClient::Config.default_environment
8
+ SgtnClient.logger.debug "[ValidateUtil][validate_config] env = #{env}"
9
9
  messages = "\n"
10
10
 
11
11
  mode = SgtnClient::Config.configurations[env]["mode"]
@@ -36,7 +36,6 @@ module SgtnClient
36
36
  if messages != "\n"
37
37
  raise SgtnClient::Exceptions::MissingConfig.new(messages)
38
38
  end
39
- SgtnClient.logger.debug "-----------End to validate configuration's setting itmes-----------"
40
39
  end
41
40
 
42
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: singleton-client-test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.27
4
+ version: 0.7.0.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - VMware G11n Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-26 00:00:00.000000000 Z
11
+ date: 2022-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client