tr8n_core 4.0.10 → 4.0.12

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
  SHA1:
3
- metadata.gz: dd3eb7989301e2c1d7d8734911a9ca036f0d5d51
4
- data.tar.gz: eef105b2a1f9ace58ce79f4acfc3f44c5cfdf7fc
3
+ metadata.gz: a984c2942575807bbf4d7e6b3b340ce2c2428020
4
+ data.tar.gz: 5cd3e83a8c544fb42a390a9218b1350f4ba66d01
5
5
  SHA512:
6
- metadata.gz: 6ec1c94fe137730ca4c2d5365f980e43ceeaa9abdb39dfaa07ae750acb8662de91b85105f4c494a3e6fd0636e4dcb7afc74813e51bf0ee6bad429540ccb59998
7
- data.tar.gz: 5e9c34a75ecb81b1d1059b27524c3061f284b649a649810336a8dd818d4fec0f0908881a5f982035984c22400ed3074e4f8696c243949fc9bf4bac22658bb155
6
+ metadata.gz: 936c126d175de897ac02f4635c6052db44f4314ec3ed745d4e2a150b5ecc99514f1f64e54d8e58735a85f3dbc5a4a290fd9e3d4162923b67c3a36cf38a77435d
7
+ data.tar.gz: 91c3092764f4a26a38d9a0b731daac3b1fe686b257a3b53d62889b7c735d6fa47edb771b134a755fcfc6e9d1490caeb8ff16604886eaee55e9adca95b64d9815
@@ -91,13 +91,22 @@ class Tr8n::ApiClient < Tr8n::Base
91
91
 
92
92
  def execute_request(path, params = {}, opts = {})
93
93
  response = nil
94
+ error = nil
94
95
  Tr8n.logger.trace_api_call(path, params) do
95
- if opts[:method] == :post
96
- response = connection.post("#{API_PATH}#{path}", params)
97
- else
98
- response = connection.get("#{API_PATH}#{path}", params)
96
+ begin
97
+ if opts[:method] == :post
98
+ response = connection.post("#{API_PATH}#{path}", params)
99
+ else
100
+ response = connection.get("#{API_PATH}#{path}", params)
101
+ end
102
+ rescue Faraday::ConnectionFailed => ex
103
+ Tr8n.logger.error("Failed to execute request: #{ex}")
104
+ error = ex
105
+ nil
99
106
  end
100
107
  end
108
+ raise Tr8n::Exception.new("Error: #{error}") if error
109
+
101
110
  data = JSON.parse(response.body)
102
111
  raise Tr8n::Exception.new("Error: #{data["error"]}") unless data["error"].nil?
103
112
  data
@@ -38,6 +38,9 @@ class Tr8n::Application < Tr8n::Base
38
38
 
39
39
  def fetch
40
40
  update_attributes(api_client.get("application", {:definition => true}, {:cache_key => key}))
41
+ rescue Tr8n::Exception => ex
42
+ Tr8n.logger.error("Failed to load application: #{ex}")
43
+ self
41
44
  end
42
45
 
43
46
  def update_attributes(attrs)
@@ -73,8 +76,24 @@ class Tr8n::Application < Tr8n::Base
73
76
  def language(locale = nil)
74
77
  locale ||= default_locale || Tr8n.config.default_locale
75
78
  @languages_by_locale ||= {}
76
- return @languages_by_locale[locale] if @languages_by_locale[locale]
77
- @languages_by_locale[locale] = Tr8n::Language.new(:locale => locale, :application => self).fetch
79
+
80
+ unless Tr8n.session.current_translator and Tr8n.session.current_translator.inline?
81
+ cache_key = "#{locale}/language"
82
+ end
83
+
84
+ @languages_by_locale[locale] ||= api_client.get(
85
+ 'language',
86
+ {:locale => locale},
87
+ {
88
+ :class => Tr8n::Language,
89
+ :attributes => {:locale => locale, :application => self},
90
+ :cache_key => cache_key
91
+ }
92
+ )
93
+ rescue Tr8n::Exception => e
94
+ Tr8n.logger.error(e)
95
+ Tr8n.logger.error(e.backtrace)
96
+ @languages_by_locale[locale] = Tr8n.config.default_language
78
97
  end
79
98
 
80
99
  # Mostly used for testing
@@ -103,19 +122,17 @@ class Tr8n::Application < Tr8n::Base
103
122
  cache_key = Tr8n::Source.cache_key(key, locale)
104
123
  end
105
124
 
106
- begin
107
- @sources_by_key[key] ||= api_client.get(
108
- "source",
109
- {:source => key, :locale => locale, :translations => true},
110
- {
111
- :class => Tr8n::Source,
112
- :attributes => {:application => self},
113
- :cache_key => cache_key
114
- }
115
- )
116
- rescue
117
- @sources_by_key[key] ||= Tr8n::Source.new(:source => key)
118
- end
125
+ @sources_by_key[key] ||= api_client.get(
126
+ "source",
127
+ {:source => key, :locale => locale, :translations => true},
128
+ {
129
+ :class => Tr8n::Source,
130
+ :attributes => {:application => self},
131
+ :cache_key => cache_key
132
+ }
133
+ )
134
+ rescue
135
+ @sources_by_key[key] = Tr8n::Source.new(:source => key)
119
136
  end
120
137
 
121
138
  def component(key, register = true)
@@ -187,16 +204,14 @@ class Tr8n::Application < Tr8n::Base
187
204
 
188
205
  def featured_languages
189
206
  @featured_languages ||= begin
190
- locales = Tr8n.cache.fetch("featured_locales") do
191
- api_client.get("application/featured_locales")
192
- end
207
+ locales = api_client.get("application/featured_locales", {}, {:cache_key => "featured_locales"})
193
208
  # use app languages, there is no need for rules for this call
194
209
  (locales.nil? or locales.empty?) ? [] : languages.select{|l| locales.include?(l.locale)}
195
210
  end
196
211
  end
197
212
 
198
213
  def translators
199
- api_client.get("application/translators", {}, {:class => Tr8n::Translator, :attributes => {:application => self}})
214
+ @translators ||= api_client.get("application/translators", {}, {:class => Tr8n::Translator, :attributes => {:application => self}})
200
215
  end
201
216
 
202
217
  def default_decoration_token(token)
@@ -207,10 +222,6 @@ class Tr8n::Application < Tr8n::Base
207
222
  hash_value(tokens, "data.#{token.to_s}")
208
223
  end
209
224
 
210
- def js_boot_url
211
- "#{host}/tr8n/api/proxy/boot.js?client_id=#{key}"
212
- end
213
-
214
225
  def feature_enabled?(key)
215
226
  hash_value(features, key.to_s)
216
227
  end
data/lib/tr8n/cache.rb CHANGED
@@ -36,7 +36,7 @@ module Tr8n
36
36
 
37
37
  def self.cache
38
38
  @cache ||= begin
39
- if Tr8n.config.cache[:enabled]
39
+ if Tr8n.config.cache_enabled?
40
40
  klass = Tr8n::CacheAdapters.const_get(Tr8n.config.cache[:adapter].camelcase)
41
41
  klass.new
42
42
  else
@@ -55,10 +55,21 @@ module Tr8n
55
55
  end
56
56
  v['version']
57
57
  end
58
+
59
+ if Tr8n.config.cache[:version] > @version
60
+ update_version(Tr8n.config.cache[:version])
61
+ @version = Tr8n.config.cache[:version]
62
+ end
63
+
64
+ @version
65
+ end
66
+
67
+ def update_version(new_version)
68
+ store(CACHE_VERSION_KEY, {'version' => new_version}, :ttl => 0)
58
69
  end
59
70
 
60
71
  def upgrade_version
61
- store(CACHE_VERSION_KEY, {'version' => version + 1}, :ttl => 0)
72
+ update_version(version + 1)
62
73
  @version = nil
63
74
  end
64
75
 
data/lib/tr8n/config.rb CHANGED
@@ -314,6 +314,10 @@ module Tr8n
314
314
  nested_value(self.translator_options, key)
315
315
  end
316
316
 
317
+ def cache_enabled?
318
+ cache[:enabled].nil? || Tr8n.config.cache[:enabled]
319
+ end
320
+
317
321
  #########################################################
318
322
  ## Application
319
323
  #########################################################
data/lib/tr8n/language.rb CHANGED
@@ -37,6 +37,8 @@ class Tr8n::Language < Tr8n::Base
37
37
 
38
38
  def fetch
39
39
  update_attributes(application.api_client.get("language", {:locale => locale}, {:cache_key => "#{locale}/language"}))
40
+ rescue Tr8n::Exception => ex
41
+ Tr8n.logger.error("Failed to load language: #{ex}")
40
42
  self
41
43
  end
42
44
 
@@ -1,5 +1,6 @@
1
1
  {"locale":"en-US",
2
2
  "name":"English (US)",
3
+ "flag_url": "https://translationexchange.com/media/7/55/1/27/c9262c9538cda82c6.png",
3
4
  "contexts":{
4
5
  "date":{
5
6
  "keyword":"date",
@@ -30,5 +30,5 @@
30
30
  #++
31
31
 
32
32
  module Tr8nCore
33
- VERSION = '4.0.10'
33
+ VERSION = '4.0.12'
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tr8n_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.10
4
+ version: 4.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Berkovich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-25 00:00:00.000000000 Z
11
+ date: 2014-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday