singleton-client 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b866f4160d99e04ac3140bf8da0e7f15abf5db1fac6360d2e5d8f8a6c392eb8
4
- data.tar.gz: 7e4977b0480ef04e774a2891fafee6d6b76fc1abbafd436e718f9846c138d545
3
+ metadata.gz: 3fa11214d62c5669477f86cf9cdd5535112c9fa48ec46504e192048e008173cc
4
+ data.tar.gz: 29675027bf9d235c59728680dd791a11665209c4e99445032410c38166db6463
5
5
  SHA512:
6
- metadata.gz: e34e259dbf04c59adb5ab96e3fde9d73a3918f9a7d284e5a33313185c1e6afbd25e43c850e3eedabbdb8602c6b32bbdb3cb76efee3536d1d7d615ddd43e94316
7
- data.tar.gz: 73f14c209b98942d919c6037b31dd5f14ac44350609e8ab42d7afdc75098a42072794b40266145c44080c936c1a90aa86b7cea4d6e2b85053d30bf2db7d22324
6
+ metadata.gz: f62c62c7e7d0e49124e8cdbd648154099e8d3b6bf5a8ac295b25817acefaf71a89dd09d6a8e1ef4f766f9e42d2ffb398af5e92f832933e650fef556aab767d53
7
+ data.tar.gz: 0d97b5eb531a64e9be1543edf3bebcc78ebc094fa06db9f711a1bb1e365ec42c4cfc0a96ffa5130f220a1c39f38ab57f10fb3120fea266ad698607557069143a
@@ -7,7 +7,7 @@ module SgtnClient
7
7
 
8
8
  def self.getSource(component, key, locale)
9
9
  cache_key = SgtnClient::CacheUtil.get_cachekey(component, locale)
10
- items = SgtnClient::CacheUtil.get_cache(cache_key)
10
+ expired, items = SgtnClient::CacheUtil.get_cache(cache_key)
11
11
  if items.nil?
12
12
  items = getBundle(component, locale)
13
13
  SgtnClient.logger.debug "Putting sources items into cache with key: " + cache_key
@@ -15,7 +15,7 @@ module SgtnClient
15
15
  else
16
16
  SgtnClient.logger.debug "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
20
  SgtnClient.logger.debug "Source not found, return key: " + key
21
21
  #return key
@@ -27,8 +27,8 @@ module SgtnClient
27
27
 
28
28
  def self.getSources(component, locale)
29
29
  cache_key = SgtnClient::CacheUtil.get_cachekey(component, locale)
30
- items = SgtnClient::CacheUtil.get_cache(cache_key)
31
- if items.nil?
30
+ expired, items = SgtnClient::CacheUtil.get_cache(cache_key)
31
+ if items.nil? || expired
32
32
  items = getBundle(component, locale)
33
33
  SgtnClient.logger.debug "Putting sources items into cache with key: " + cache_key
34
34
  SgtnClient::CacheUtil.write_cache(cache_key, items)
@@ -15,6 +15,9 @@ module SgtnClient
15
15
  str = getTranslation(component, key, locale)
16
16
  if str.nil?
17
17
  str = SgtnClient::Source.getSource(component, key, SgtnClient::Config.configurations.default)
18
+ if str.nil?
19
+ SgtnClient.logger.error "Can't find the key '" + key + "' in source path!"
20
+ end
18
21
  end
19
22
  str
20
23
  end
@@ -23,6 +26,10 @@ module SgtnClient
23
26
  str = getTranslation(component, key, locale)
24
27
  if str.nil?
25
28
  str = SgtnClient::Source.getSource(component, key, SgtnClient::Config.configurations.default)
29
+ if str.nil?
30
+ SgtnClient.logger.error "Can't find the key '" + key + "' in source path!"
31
+ return nil
32
+ end
26
33
  str.to_plural_s(:en, plural_args)
27
34
  else
28
35
  str.to_plural_s(locale, plural_args)
@@ -31,6 +38,9 @@ module SgtnClient
31
38
 
32
39
  def self.getString_f(component, key, args, locale, *optionals)
33
40
  s = getString(component, key, locale, *optionals)
41
+ if s.nil?
42
+ return nil
43
+ end
34
44
  if args.is_a?(Hash)
35
45
  args.each do |source, arg|
36
46
  s.gsub! "{#{source}}", arg
@@ -42,24 +52,19 @@ module SgtnClient
42
52
  end
43
53
 
44
54
  def self.getStrings(component, locale)
45
- flocale = SgtnClient::LocaleUtil.fallback(locale)
46
- cache_key = SgtnClient::CacheUtil.get_cachekey(component, flocale)
47
- items = SgtnClient::CacheUtil.get_cache(cache_key)
48
- if items.nil?
49
- items = getTranslations(component, flocale)
50
- SgtnClient::CacheUtil.write_cache(cache_key, items)
51
- else
52
- SgtnClient.logger.debug "Getting translations from cache with key: " + cache_key
53
- end
54
-
55
+ items = get_cs(component, locale)
55
56
  default = SgtnClient::Config.configurations.default
56
57
  if items.nil? || items["messages"] == nil
57
58
  items = {}
58
59
  s = SgtnClient::Source.getSources(component, default)
59
- default_component, value = s.first
60
- items["component"] = component
61
- items["messages"] = value
62
- items["locale"] = 'source'
60
+ if s.nil?
61
+ SgtnClient.logger.error "Can't find the component '" + component + "' in source path!"
62
+ else
63
+ default_component, value = s.first
64
+ items["component"] = component
65
+ items["messages"] = value
66
+ items["locale"] = 'source'
67
+ end
63
68
  end
64
69
  return items
65
70
  end
@@ -68,11 +73,20 @@ module SgtnClient
68
73
  private
69
74
 
70
75
  def self.getTranslation(component, key, locale)
76
+ items = get_cs(component, locale)
77
+ if items.nil? || items["messages"] == nil
78
+ nil
79
+ else
80
+ items["messages"][key]
81
+ end
82
+ end
83
+
84
+ def self.get_cs(component, locale)
71
85
  flocale = SgtnClient::LocaleUtil.fallback(locale)
72
86
  cache_key = SgtnClient::CacheUtil.get_cachekey(component, flocale)
73
- items = SgtnClient::CacheUtil.get_cache(cache_key)
74
- if items.nil?
75
- items = getTranslations(component, flocale)
87
+ expired, items = SgtnClient::CacheUtil.get_cache(cache_key)
88
+ if items.nil? || expired
89
+ items = load(component, flocale)
76
90
  if items.nil?
77
91
  items = SgtnClient::Source.getSources(component, SgtnClient::Config.configurations.default)
78
92
  SgtnClient::Core::Cache.put(cache_key, items, 60)
@@ -82,24 +96,21 @@ module SgtnClient
82
96
  else
83
97
  SgtnClient.logger.debug "Getting translations from cache with key: " + cache_key
84
98
  end
85
- if items.nil? || items["messages"] == nil
86
- nil
87
- else
88
- items["messages"][key]
89
- end
90
- end
91
-
92
- def self.getTranslations(component, locale)
99
+
100
+ return items
101
+ end
102
+
103
+ def self.load(component, locale)
93
104
  env = SgtnClient::Config.default_environment
94
105
  mode = SgtnClient::Config.configurations[env]["bundle_mode"]
95
106
  if mode == 'offline'
96
- return get_offbundle(component, locale)
107
+ return load_o(component, locale)
97
108
  else
98
- return get_server(component, locale)
109
+ return load_s(component, locale)
99
110
  end
100
111
  end
101
112
 
102
- def self.get_offbundle(component, locale)
113
+ def self.load_o(component, locale)
103
114
  env = SgtnClient::Config.default_environment
104
115
  product_name = SgtnClient::Config.configurations[env]["product_name"]
105
116
  version = SgtnClient::Config.configurations[env]["version"].to_s
@@ -109,7 +120,7 @@ module SgtnClient
109
120
  SgtnClient::FileUtil.read_json(bundlepath)
110
121
  end
111
122
 
112
- def self.get_server(component, locale)
123
+ def self.load_s(component, locale)
113
124
  env = SgtnClient::Config.default_environment
114
125
  product_name = SgtnClient::Config.configurations[env]["product_name"]
115
126
  vip_server = SgtnClient::Config.configurations[env]["vip_server"]
@@ -5,86 +5,95 @@ module SgtnClient::Core
5
5
  Entry = Struct.new(:expiry, :value)
6
6
 
7
7
  def self.initialize(disabled=false, opts={})
8
- $opts = opts
8
+ @@opts = opts
9
9
  @mutex = Mutex.new
10
10
  SgtnClient.logger.debug "Initialize cache......"
11
11
  if disabled == false
12
- $data = Hash.new
12
+ @@data = Hash.new
13
13
  SgtnClient.logger.debug "Cache is enabled!"
14
14
  else
15
+ @@data = nil
15
16
  SgtnClient.logger.debug "Cache is disabled!"
16
17
  end
17
18
  end
18
19
 
19
20
  def self.keys
20
- if $data == nil
21
+ if @@data == nil
21
22
  return nil
22
23
  end
23
24
  SgtnClient.logger.debug "Get cache keys"
24
- $data.keys
25
+ @@data.keys
25
26
  end
26
27
 
27
28
  def self.get(key)
28
- if $data == nil
29
- return nil
29
+ if @@data == nil
30
+ return nil, nil
30
31
  end
31
32
  SgtnClient.logger.debug "Get cache for key: " + key
32
- invalidate
33
- $data[key][:value] if has(key)
33
+ invalidate(key)
34
34
  end
35
35
 
36
36
  def self.has(key)
37
- if $data == nil
37
+ if @@data == nil
38
38
  return nil
39
39
  end
40
- SgtnClient.logger.debug "Has cache for key: " + key
41
- $data.has_key? key
40
+ SgtnClient.logger.debug "Check if the cache has key: #{(@@data.has_key? key)}"
41
+ @@data.has_key? key
42
42
  end
43
43
 
44
44
  def self.put(key, value, ttl=nil)
45
45
  @mutex.synchronize do
46
- if $data == nil
46
+ if @@data == nil || value == nil
47
47
  return nil
48
48
  end
49
- ttl ||= @opts[:ttl]
49
+ ttl ||= @@opts[:ttl]
50
50
  # hours from new
51
51
  SgtnClient.logger.debug "Put cache for key '" + key + "' with expired time at'" + (Time.now + ttl*60).to_s
52
- $data[key] = Entry.new(Time.now + ttl*60, value)
52
+ @@data[key] = Entry.new(Time.now + ttl*60, value)
53
53
  end
54
54
  end
55
55
 
56
56
  def self.delete(key)
57
57
  @mutex.synchronize do
58
- if $data == nil
58
+ if @@data == nil
59
59
  return nil
60
60
  end
61
61
  SgtnClient.logger.debug "Delete cache for key: " + key
62
- $data.delete key
62
+ @@data.delete key
63
63
  end
64
64
  end
65
65
 
66
66
  def self.clear
67
67
  @mutex.synchronize do
68
- if $data == nil
68
+ if @@data == nil
69
69
  return nil
70
70
  end
71
71
  SgtnClient.logger.debug "Clear cache!"
72
- $data = Hash.new
72
+ @@data = Hash.new
73
73
  end
74
74
  end
75
75
 
76
- def self.invalidate
76
+ def self.invalidate(key)
77
77
  @mutex.synchronize do
78
- if $data == nil
79
- return nil
78
+ if @@data == nil
79
+ return nil, nil
80
80
  end
81
81
  SgtnClient.logger.debug "Invalidating expired cache......"
82
82
  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}
83
+ if has(key)
84
+ v = @@data[key]
85
+ expired = false
86
+ SgtnClient.logger.debug "Checking cache: key=#{key}, expiredtime=#{v[:expiry]}, now=#{now}, expired=#{(v[:expiry] < now)}"
87
+ if v[:expiry] < now
88
+ SgtnClient.logger.debug "Before deleting the cache: data=#{@@data}"
89
+ @@data.delete(key)
90
+ SgtnClient.logger.debug "After deleting the cache: data=#{@@data}"
91
+ expired = true
92
+ end
93
+ return expired, v[:value]
94
+ else
95
+ return nil, nil
96
+ end
88
97
  end
89
98
  end
90
99
  end
@@ -40,7 +40,7 @@ module SgtnClient
40
40
  :rest_endpoint, :rest_token_endpoint, :client_id, :client_secret,
41
41
  :openid_endpoint, :openid_redirect_uri, :openid_client_id, :openid_client_secret,
42
42
  :verbose_logging, :product_name, :version, :vip_server, :bundle_mode,
43
- :translation_bundle, :source_bundle, :cache_expiry_period, :disable_cache
43
+ :translation_bundle, :source_bundle, :cache_expiry_period, :disable_cache, :default_language
44
44
 
45
45
 
46
46
  # Create Config object
@@ -10,8 +10,8 @@ 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
+ return expired, items
15
15
  end
16
16
 
17
17
  def self.clear_cache()
@@ -19,6 +19,10 @@ module SgtnClient
19
19
  end
20
20
 
21
21
  def self.write_cache(cache_key, items)
22
+ if items.nil?
23
+ SgtnClient.logger.debug "write cache with key #{cache_key}, itmes #{items}"
24
+ return nil
25
+ end
22
26
  env = SgtnClient::Config.default_environment
23
27
  cache_expiry_period = SgtnClient::Config.configurations[env]["cache_expiry_period"]
24
28
  # expired after 24 hours
@@ -32,7 +36,12 @@ module SgtnClient
32
36
  env = SgtnClient::Config.default_environment
33
37
  product_name = SgtnClient::Config.configurations[env]["product_name"]
34
38
  version = SgtnClient::Config.configurations[env]["version"].to_s
35
- return product_name + "_" + version + "_" + component + "_" + locale
39
+ default_l = SgtnClient::Config.configurations[env]["default_language"]
40
+ if default_l == nil
41
+ default_l = 'en'
42
+ end
43
+ lc = locale == default_l ? SgtnClient::Config.configurations.default: locale
44
+ return product_name + "_" + version + "_" + component + "_" + lc
36
45
  end
37
46
  end
38
47
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: singleton-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
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-18 00:00:00.000000000 Z
11
+ date: 2022-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client