tml 5.1.1 → 5.1.2

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
  SHA1:
3
- metadata.gz: 66fdea16ab7a949df955b07b84cff3e12ff4ce6c
4
- data.tar.gz: c534611d08ce4f130ba280b6b6c4a69567f60ddd
3
+ metadata.gz: c4ae1644d633f0f8ead496d5ac732ccd9dcbc34c
4
+ data.tar.gz: b92c379114a8878d85a27b997c098319cd756eca
5
5
  SHA512:
6
- metadata.gz: 35e492c0334f46220d7f85fd68465c03f70b11a22106d601176009f92edb21cb52bc55bb0ce1d79f1e310d5f780a1baa8f35e4a2957a43eda0a8278c311fe448
7
- data.tar.gz: 3d6ae9f883fd21971e928f76aeae05cb969b448f5cee9af26b1b04e6bbc85bb04518d911cc2778ff00af3c567bb58ebead7fd6710c8fec8bac8eaa9d923669a3
6
+ metadata.gz: 9fd13088aa2fbc7f9f02a5c424e62c35111ec4f2edcba5cb2b8e2d02f1a9839e9d199b9545c20ae001ad82190b3546fe1e61e1e0d65ca241f3d7fdd6cb5d81a5
7
+ data.tar.gz: e4b4cd7014d4c3fb5bc6a8b81f94532ce036054338912d802dce3c8e8c4c249238a1121d7d58e51e903e98531c2485513dd0e021c83247f17c79fb0f8c7ceb10
@@ -35,8 +35,6 @@ require 'zlib'
35
35
  require 'stringio'
36
36
 
37
37
  class Tml::Api::Client < Tml::Base
38
- CDN_HOST = 'https://cdn.translationexchange.com'
39
- API_HOST = 'https://api.translationexchange.com'
40
38
  API_PATH = '/v1'
41
39
 
42
40
  attributes :application
@@ -66,16 +64,8 @@ class Tml::Api::Client < Tml::Base
66
64
  not data['error'].nil?
67
65
  end
68
66
 
69
- def host
70
- application.host || API_HOST
71
- end
72
-
73
- def cdn_host
74
- CDN_HOST
75
- end
76
-
77
67
  def connection
78
- @connection ||= Faraday.new(:url => host) do |faraday|
68
+ @connection ||= Faraday.new(:url => application.host) do |faraday|
79
69
  faraday.request(:url_encoded) # form-encode POST params
80
70
  # faraday.response :logger # log requests to STDOUT
81
71
  faraday.adapter(Faraday.default_adapter) # make requests with Net::HTTP
@@ -99,7 +89,7 @@ class Tml::Api::Client < Tml::Base
99
89
  end
100
90
 
101
91
  def cdn_connection
102
- @cdn_connection ||= Faraday.new(:url => cdn_host) do |faraday|
92
+ @cdn_connection ||= Faraday.new(:url => application.cdn_host) do |faraday|
103
93
  faraday.request(:url_encoded) # form-encode POST params
104
94
  faraday.adapter(Faraday.default_adapter) # make requests with Net::HTTP
105
95
  end
@@ -109,8 +99,8 @@ class Tml::Api::Client < Tml::Base
109
99
  return nil if Tml.cache.version == 'undefined' || Tml.cache.version.to_s == '0'
110
100
 
111
101
  response = nil
112
- cdn_path = "/#{Tml.config.application[:key]}/#{Tml.cache.version}/#{key}.json.gz"
113
- trace_api_call(cdn_path, params, opts.merge(:host => cdn_host)) do
102
+ cdn_path = "/#{application.key}/#{Tml.cache.version}/#{key}.json.gz"
103
+ trace_api_call(cdn_path, params, opts.merge(:host => application.cdn_host)) do
114
104
  begin
115
105
  response = cdn_connection.get do |request|
116
106
  prepare_request(request, cdn_path, params)
@@ -138,10 +128,19 @@ class Tml::Api::Client < Tml::Base
138
128
  data
139
129
  end
140
130
 
131
+ def enable_cache?(opts)
132
+ return false unless opts[:method] == :get
133
+ return false if opts[:cache_key].nil?
134
+ return false unless Tml.cache.enabled?
135
+ return false if Tml.session.inline_mode?
136
+ return false if Tml.session.block_option(:live)
137
+ true
138
+ end
139
+
141
140
  def api(path, params = {}, opts = {})
142
141
  # inline mode should always bypass API calls
143
142
  # get request uses local cache, then CDN, the API
144
- if opts[:method] == :get and opts[:cache_key] and Tml.cache.enabled? and not Tml.session.inline_mode?
143
+ if enable_cache?(opts)
145
144
  verify_cache_version
146
145
  data = Tml.cache.fetch(opts[:cache_key]) do
147
146
  if Tml.cache.read_only?
@@ -195,18 +194,16 @@ class Tml::Api::Client < Tml::Base
195
194
  response = nil
196
195
  error = nil
197
196
 
198
- token = Tml.config.application ? Tml.config.application[:token] : ''
199
-
200
197
  # oauth path is separate from versioned APIs
201
198
  path = prepare_api_path(path)
202
- params = params.merge(:access_token => token) unless path.index('oauth')
199
+ params = params.merge(:access_token => application.token) unless path.index('oauth')
203
200
 
204
201
  if opts[:method] == :post
205
202
  params = params.merge(:api_key => application.key)
206
203
  end
207
204
 
208
205
  @compressed = false
209
- trace_api_call(path, params, opts.merge(:host => host)) do
206
+ trace_api_call(path, params, opts.merge(:host => application.host)) do
210
207
  begin
211
208
  if opts[:method] == :post
212
209
  response = connection.post(path, params)
@@ -33,6 +33,10 @@
33
33
  require 'faraday'
34
34
 
35
35
  class Tml::Application < Tml::Base
36
+
37
+ CDN_HOST = 'https://cdn.translationexchange.com'
38
+ API_HOST = 'https://api.translationexchange.com'
39
+
36
40
  attributes :host, :id, :key, :access_token, :name, :description, :threshold, :default_locale, :default_level, :tools
37
41
  has_many :features, :languages, :languages_by_locale, :sources, :tokens, :css, :shortcuts, :translations, :extensions
38
42
 
@@ -46,6 +50,18 @@ class Tml::Application < Tml::Base
46
50
  "#{locale}/translations"
47
51
  end
48
52
 
53
+ def token
54
+ access_token
55
+ end
56
+
57
+ def host
58
+ super || API_HOST
59
+ end
60
+
61
+ def cdn_host
62
+ CDN_HOST
63
+ end
64
+
49
65
  # Fetches application definition from the service
50
66
  def fetch
51
67
  data = api_client.get('projects/current/definition',{
data/lib/tml/config.rb CHANGED
@@ -102,7 +102,7 @@ module Tml
102
102
 
103
103
  @agent = {
104
104
  enabled: true,
105
- type: 'agent'
105
+ type: 'tools'
106
106
  }
107
107
 
108
108
  # if running from IRB, make it default to TRUE
data/lib/tml/language.rb CHANGED
@@ -109,7 +109,7 @@ class Tml::Language < Tml::Base
109
109
  end
110
110
 
111
111
  def current_source(options)
112
- (options[:source] || Tml.session.block_options[:source] || Tml.session.current_source || 'undefined').to_s
112
+ (options[:source] || Tml.session.block_option(:source) || Tml.session.current_source || 'undefined').to_s
113
113
  end
114
114
 
115
115
  #######################################################################################################
@@ -137,8 +137,8 @@ class Tml::Language < Tml::Base
137
137
  :application => application,
138
138
  :label => params[:label],
139
139
  :description => params[:description],
140
- :locale => hash_value(params[:options], :locale) || hash_value(Tml.session.block_options, :locale) || Tml.config.default_locale,
141
- :level => hash_value(params[:options], :level) || hash_value(Tml.session.block_options, :level) || Tml.config.default_level,
140
+ :locale => hash_value(params[:options], :locale) || Tml.session.block_option(:locale) || Tml.config.default_locale,
141
+ :level => hash_value(params[:options], :level) || Tml.session.block_option(:level) || Tml.config.default_level,
142
142
  :translations => []
143
143
  })
144
144
 
@@ -166,13 +166,13 @@ class Tml::Language < Tml::Base
166
166
  current_source_path = source_path
167
167
 
168
168
  # Dynamic sources are never registered under the parent source
169
- if hash_value(Tml.session.block_options, :dynamic)
169
+ if Tml.session.block_option(:dynamic)
170
170
  current_source_path = source_key
171
171
  else
172
172
  application.verify_source_path(source_key, current_source_path)
173
173
  end
174
174
 
175
- # Tml.logger.debug("#{params[:label]}, #{source_key}")
175
+ # Tml.logger.debug("#{params[:label]} : #{source_key}")
176
176
 
177
177
  source = application.source(source_key, locale)
178
178
  cached_translations = source.cached_translations(locale, translation_key.key)
data/lib/tml/session.rb CHANGED
@@ -41,9 +41,11 @@ module Tml
41
41
  attr_accessor :current_user, :current_locale, :current_language, :current_translator, :current_source
42
42
 
43
43
  def init(opts = {})
44
- return unless Tml.config.enabled? and Tml.config.application
44
+ return if Tml.config.disabled?
45
45
 
46
- host = opts[:host] || Tml.config.application[:host]
46
+ key = opts[:key] || Tml.config.application[:key]
47
+ token = opts[:token] || Tml.config.application[:token]
48
+ host = opts[:host] || Tml.config.application[:host]
47
49
 
48
50
  Tml.cache.reset_version
49
51
 
@@ -52,13 +54,7 @@ module Tml
52
54
  self.current_locale = opts[:locale]
53
55
  self.current_translator = opts[:translator]
54
56
 
55
- self.application = Tml::Application.new(:host => host).fetch
56
-
57
- # if inline mode don't use any app cache
58
- # if inline_mode?
59
- # self.application = self.application.dup
60
- # self.application.reset_translation_cache
61
- # end
57
+ self.application = Tml::Application.new(:key => key, :access_token => token, :host => host).fetch
62
58
 
63
59
  if self.current_translator
64
60
  self.current_translator.application = self.application
@@ -97,19 +93,13 @@ module Tml
97
93
  end
98
94
 
99
95
  def source_language
100
- (@block_options || []).reverse.each do |opts|
101
- return application.language(opts[:locale]) unless opts[:locale].nil?
102
- end
103
-
104
- application.language
96
+ locale = block_option(:locale)
97
+ locale ? application.language(locale) : application.language
105
98
  end
106
99
 
107
100
  def target_language
108
- (@block_options || []).reverse.each do |opts|
109
- return application.language(opts[:target_locale]) unless opts[:target_locale].nil?
110
- end
111
-
112
- current_language
101
+ target_locale = block_option(:target_locale)
102
+ target_locale ? application.language(target_locale) : current_language
113
103
  end
114
104
 
115
105
  def inline_mode?
@@ -120,8 +110,19 @@ module Tml
120
110
  ## Block Options
121
111
  #########################################################
122
112
 
113
+ def block_option(key, lookup = true)
114
+ if lookup
115
+ block_options_queue.reverse.each do |options|
116
+ value = options[key.to_s] || options[key.to_sym]
117
+ return value if value
118
+ end
119
+ return nil
120
+ end
121
+ block_options[key]
122
+ end
123
+
123
124
  def push_block_options(opts)
124
- (@block_options ||= []).push(opts)
125
+ block_options_queue.push(opts)
125
126
  end
126
127
 
127
128
  def pop_block_options
@@ -129,12 +130,12 @@ module Tml
129
130
  @block_options.pop
130
131
  end
131
132
 
132
- def block_options
133
- (@block_options ||= []).last || {}
133
+ def block_options_queue
134
+ @block_options ||= []
134
135
  end
135
136
 
136
- def block_options_queue
137
- @block_options
137
+ def block_options
138
+ block_options_queue.last || {}
138
139
  end
139
140
 
140
141
  def with_block_options(opts)
@@ -146,13 +147,5 @@ module Tml
146
147
  ret
147
148
  end
148
149
 
149
- def current_source_from_block_options
150
- arr = @block_options || []
151
- arr.reverse.each do |opts|
152
- return application.source_by_key(opts[:source]) unless opts[:source].blank?
153
- end
154
- nil
155
- end
156
-
157
150
  end
158
151
  end
@@ -333,7 +333,7 @@ module Tml
333
333
  def sanitize(value, object, language, options)
334
334
  value = value.to_s
335
335
 
336
- unless Tml.session.block_options[:skip_html_escaping]
336
+ unless Tml.session.block_option(:skip_html_escaping)
337
337
  if options[:safe] == false
338
338
  value = CGI.escapeHTML(value)
339
339
  end
@@ -41,7 +41,7 @@ class Tml::TranslationKey < Tml::Base
41
41
  super
42
42
 
43
43
  self.attributes[:key] ||= self.class.generate_key(label, description)
44
- self.attributes[:locale] ||= Tml.session.block_options[:locale] || (application ? application.default_locale : Tml.config.default_locale)
44
+ self.attributes[:locale] ||= Tml.session.block_option(:locale) || (application ? application.default_locale : Tml.config.default_locale)
45
45
  self.attributes[:language] ||= application ? application.language(locale) : Tml.config.default_language
46
46
  self.attributes[:translations] = {}
47
47
 
@@ -41,7 +41,7 @@ class Tml::Translator < Tml::Base
41
41
  end
42
42
 
43
43
  def inline?
44
- return Tml.session.block_options[:inline] unless Tml.session.block_options[:inline].nil?
45
- super
44
+ Tml.session.block_option(:inline) || super
46
45
  end
46
+
47
47
  end
data/lib/tml/version.rb CHANGED
@@ -30,5 +30,5 @@
30
30
  #++
31
31
 
32
32
  module Tml
33
- VERSION = '5.1.1'
33
+ VERSION = '5.1.2'
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tml
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.1
4
+ version: 5.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Berkovich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
11
+ date: 2015-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday