tml 5.7.4 → 5.7.5
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 +5 -5
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/lib/tml.rb +1 -1
- data/lib/tml/api/client.rb +30 -23
- data/lib/tml/application.rb +1 -1
- data/lib/tml/base.rb +1 -1
- data/lib/tml/cache.rb +1 -1
- data/lib/tml/cache_adapters/file.rb +1 -1
- data/lib/tml/cache_adapters/memcache.rb +1 -1
- data/lib/tml/cache_adapters/redis.rb +1 -1
- data/lib/tml/cache_version.rb +1 -1
- data/lib/tml/config.rb +1 -1
- data/lib/tml/decorators/base.rb +1 -1
- data/lib/tml/decorators/default.rb +1 -1
- data/lib/tml/decorators/html.rb +1 -1
- data/lib/tml/decorators/json.rb +1 -1
- data/lib/tml/exception.rb +1 -1
- data/lib/tml/ext/array.rb +1 -1
- data/lib/tml/ext/date.rb +1 -1
- data/lib/tml/ext/fixnum.rb +1 -1
- data/lib/tml/ext/hash.rb +1 -1
- data/lib/tml/ext/string.rb +1 -1
- data/lib/tml/ext/time.rb +1 -1
- data/lib/tml/language.rb +1 -1
- data/lib/tml/language_case.rb +1 -1
- data/lib/tml/language_case_rule.rb +1 -1
- data/lib/tml/language_context.rb +1 -1
- data/lib/tml/language_context_rule.rb +1 -1
- data/lib/tml/logger.rb +1 -1
- data/lib/tml/rules_engine/evaluator.rb +1 -1
- data/lib/tml/rules_engine/parser.rb +1 -1
- data/lib/tml/session.rb +1 -1
- data/lib/tml/source.rb +1 -1
- data/lib/tml/tokenizers/data.rb +1 -1
- data/lib/tml/tokenizers/decoration.rb +1 -1
- data/lib/tml/tokenizers/dom.rb +1 -1
- data/lib/tml/tokenizers/x_message.rb +1 -1
- data/lib/tml/tokens/data.rb +1 -1
- data/lib/tml/tokens/decoration.rb +1 -1
- data/lib/tml/tokens/map.rb +1 -1
- data/lib/tml/tokens/method.rb +1 -1
- data/lib/tml/tokens/transform.rb +1 -1
- data/lib/tml/tokens/x_message/choice.rb +1 -1
- data/lib/tml/tokens/x_message/data.rb +1 -1
- data/lib/tml/tokens/x_message/decoration.rb +1 -1
- data/lib/tml/tokens/x_message/map.rb +1 -1
- data/lib/tml/translation.rb +1 -1
- data/lib/tml/translation_key.rb +1 -1
- data/lib/tml/translator.rb +1 -1
- data/lib/tml/utils.rb +1 -1
- data/lib/tml/version.rb +2 -2
- data/tasks/tml/cache.rake +33 -0
- metadata +4 -5
- data/lib/tml/postoffice.rb +0 -99
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f22472b3451faaa34531f1a366b002b3c0fcb6836a6511f249428bd696b3f913
|
4
|
+
data.tar.gz: d0b282b91dc07cc90aa1542daa363d643aecb1ecef8ee50e982c02a819a96844
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a7ac88acae16bf896ec80bd9b05e45843fb0975f6ba3ed8d6d7f525916930ab7efbf28cc0541413bdab9d230bff15a44357debbc32efee00cce6149b5be3050
|
7
|
+
data.tar.gz: 4a5880962f6c461cafcb7c9f88343632db6eba4c870c048763e2b8277f6f8a7af3b62e83801bb6760f22bb8ccd13cc947304b7dca9b06716ff326c4e54aa0ce4
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -224,7 +224,7 @@ Links
|
|
224
224
|
Copyright and license
|
225
225
|
==================
|
226
226
|
|
227
|
-
Copyright (c)
|
227
|
+
Copyright (c) 2017 Translation Exchange, Inc
|
228
228
|
|
229
229
|
Permission is hereby granted, free of charge, to any person obtaining
|
230
230
|
a copy of this software and associated documentation files (the
|
data/lib/tml.rb
CHANGED
data/lib/tml/api/client.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
#--
|
3
|
-
# Copyright (c)
|
3
|
+
# Copyright (c) 2017 Translation Exchange, Inc
|
4
4
|
#
|
5
5
|
# _______ _ _ _ ______ _
|
6
6
|
# |__ __| | | | | (_) | ____| | |
|
@@ -77,9 +77,9 @@ class Tml::Api::Client < Tml::Base
|
|
77
77
|
# API connection
|
78
78
|
def connection
|
79
79
|
@connection ||= Faraday.new(:url => host) do |faraday|
|
80
|
-
faraday.request(:url_encoded)
|
80
|
+
faraday.request(:url_encoded) # form-encode POST params
|
81
81
|
# faraday.response :logger # log requests to STDOUT
|
82
|
-
faraday.adapter(Faraday.default_adapter)
|
82
|
+
faraday.adapter(Faraday.default_adapter) # make requests with Net::HTTP
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -113,8 +113,8 @@ class Tml::Api::Client < Tml::Base
|
|
113
113
|
# cdn_connection
|
114
114
|
def cdn_connection
|
115
115
|
@cdn_connection ||= Faraday.new(:url => application.cdn_host) do |faraday|
|
116
|
-
faraday.request(:url_encoded)
|
117
|
-
faraday.adapter(Faraday.default_adapter)
|
116
|
+
faraday.request(:url_encoded) # form-encode POST params
|
117
|
+
faraday.adapter(Faraday.default_adapter) # make requests with Net::HTTP
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
@@ -136,7 +136,7 @@ class Tml::Api::Client < Tml::Base
|
|
136
136
|
trace_api_call(cdn_path, params, opts.merge(:host => application.cdn_host)) do
|
137
137
|
begin
|
138
138
|
response = cdn_connection.get do |request|
|
139
|
-
prepare_request(request, cdn_path, params)
|
139
|
+
prepare_request(request, cdn_path, params, opts)
|
140
140
|
end
|
141
141
|
rescue Exception => ex
|
142
142
|
Tml.logger.error("Failed to execute request: #{ex.message[0..255]}")
|
@@ -158,7 +158,7 @@ class Tml::Api::Client < Tml::Base
|
|
158
158
|
|
159
159
|
begin
|
160
160
|
data = JSON.parse(data)
|
161
|
-
rescue
|
161
|
+
rescue => ex
|
162
162
|
return nil
|
163
163
|
end
|
164
164
|
|
@@ -238,7 +238,7 @@ class Tml::Api::Client < Tml::Base
|
|
238
238
|
return path if path.match(/^https?:\/\//)
|
239
239
|
clean_path = trim_prepending_slash(path)
|
240
240
|
|
241
|
-
if clean_path.index(
|
241
|
+
if clean_path.index('v1') == 0 || clean_path.index('v2') == 0
|
242
242
|
"/#{clean_path}"
|
243
243
|
else
|
244
244
|
"#{API_PATH}/#{clean_path}"
|
@@ -246,16 +246,20 @@ class Tml::Api::Client < Tml::Base
|
|
246
246
|
end
|
247
247
|
|
248
248
|
def trim_prepending_slash(str)
|
249
|
-
str.index(
|
249
|
+
str.index('/') == 0 ? str[1..-1] : str
|
250
250
|
end
|
251
251
|
|
252
252
|
# prepares request
|
253
|
-
def prepare_request(request, path, params)
|
254
|
-
request.options.timeout
|
255
|
-
request.options.open_timeout
|
256
|
-
request.headers['User-Agent']
|
257
|
-
request.headers['Accept']
|
258
|
-
|
253
|
+
def prepare_request(request, path, params, opts = {})
|
254
|
+
request.options.timeout = Tml.config.api_client[:timeout]
|
255
|
+
request.options.open_timeout = Tml.config.api_client[:open_timeout]
|
256
|
+
request.headers['User-Agent'] = "tml-ruby v#{Tml::VERSION} (Faraday v#{Faraday::VERSION})"
|
257
|
+
request.headers['Accept'] = 'application/json'
|
258
|
+
|
259
|
+
unless opts[:uncompressed]
|
260
|
+
request.headers['Accept-Encoding'] = 'gzip, deflate'
|
261
|
+
end
|
262
|
+
|
259
263
|
request.url(path, params)
|
260
264
|
end
|
261
265
|
|
@@ -266,7 +270,8 @@ class Tml::Api::Client < Tml::Base
|
|
266
270
|
|
267
271
|
path = prepare_api_path(path)
|
268
272
|
|
269
|
-
|
273
|
+
opts[:method] ||= :get
|
274
|
+
|
270
275
|
trace_api_call(path, params, opts.merge(:host => host)) do
|
271
276
|
begin
|
272
277
|
if opts[:method] == :post
|
@@ -277,23 +282,25 @@ class Tml::Api::Client < Tml::Base
|
|
277
282
|
response = connection.delete(path, params)
|
278
283
|
else
|
279
284
|
response = connection.get do |request|
|
280
|
-
|
281
|
-
prepare_request(request, path, params)
|
285
|
+
prepare_request(request, path, params, opts)
|
282
286
|
end
|
283
287
|
end
|
284
|
-
rescue
|
288
|
+
rescue => ex
|
285
289
|
Tml.logger.error("Failed to execute request: #{ex.message[0..255]}")
|
286
290
|
error = ex
|
287
291
|
nil
|
288
292
|
end
|
289
293
|
end
|
290
|
-
raise Tml::Exception.new("Error: #{error}") if error
|
291
294
|
|
292
|
-
if
|
295
|
+
if error
|
296
|
+
raise Tml::Exception.new("Error: #{error}")
|
297
|
+
end
|
298
|
+
|
299
|
+
if response.status >= 500 && response.status < 600
|
293
300
|
raise Tml::Exception.new("Error: #{response.body}")
|
294
301
|
end
|
295
302
|
|
296
|
-
if
|
303
|
+
if opts[:method] == :get && !opts[:uncompressed]
|
297
304
|
compressed_data = response.body
|
298
305
|
return if compressed_data.nil? or compressed_data == ''
|
299
306
|
|
@@ -307,7 +314,7 @@ class Tml::Api::Client < Tml::Base
|
|
307
314
|
|
308
315
|
begin
|
309
316
|
data = JSON.parse(data)
|
310
|
-
rescue
|
317
|
+
rescue => ex
|
311
318
|
raise Tml::Exception.new("Failed to parse response: #{ex.message[0..255]}")
|
312
319
|
end
|
313
320
|
|
data/lib/tml/application.rb
CHANGED
data/lib/tml/base.rb
CHANGED
data/lib/tml/cache.rb
CHANGED
data/lib/tml/cache_version.rb
CHANGED
data/lib/tml/config.rb
CHANGED
data/lib/tml/decorators/base.rb
CHANGED
data/lib/tml/decorators/html.rb
CHANGED
data/lib/tml/decorators/json.rb
CHANGED
data/lib/tml/exception.rb
CHANGED
data/lib/tml/ext/array.rb
CHANGED
data/lib/tml/ext/date.rb
CHANGED
data/lib/tml/ext/fixnum.rb
CHANGED
data/lib/tml/ext/hash.rb
CHANGED
data/lib/tml/ext/string.rb
CHANGED
data/lib/tml/ext/time.rb
CHANGED
data/lib/tml/language.rb
CHANGED
data/lib/tml/language_case.rb
CHANGED
data/lib/tml/language_context.rb
CHANGED
data/lib/tml/logger.rb
CHANGED
data/lib/tml/session.rb
CHANGED
data/lib/tml/source.rb
CHANGED
data/lib/tml/tokenizers/data.rb
CHANGED
data/lib/tml/tokenizers/dom.rb
CHANGED
data/lib/tml/tokens/data.rb
CHANGED
data/lib/tml/tokens/map.rb
CHANGED
data/lib/tml/tokens/method.rb
CHANGED
data/lib/tml/tokens/transform.rb
CHANGED
data/lib/tml/translation.rb
CHANGED
data/lib/tml/translation_key.rb
CHANGED
data/lib/tml/translator.rb
CHANGED
data/lib/tml/utils.rb
CHANGED
data/lib/tml/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
#--
|
3
|
-
# Copyright (c)
|
3
|
+
# Copyright (c) 2017 Translation Exchange Inc. http://translationexchange.com
|
4
4
|
#
|
5
5
|
# _______ _ _ _ ______ _
|
6
6
|
# |__ __| | | | | (_) | ____| | |
|
@@ -31,7 +31,7 @@
|
|
31
31
|
#++
|
32
32
|
|
33
33
|
module Tml
|
34
|
-
VERSION = '5.7.
|
34
|
+
VERSION = '5.7.5'
|
35
35
|
|
36
36
|
def self.full_version
|
37
37
|
"tml-ruby v#{Tml::VERSION} (Faraday v#{Faraday::VERSION})"
|
data/tasks/tml/cache.rake
CHANGED
@@ -1,3 +1,36 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
#--
|
3
|
+
# Copyright (c) 2017 Translation Exchange, Inc
|
4
|
+
#
|
5
|
+
# _______ _ _ _ ______ _
|
6
|
+
# |__ __| | | | | (_) | ____| | |
|
7
|
+
# | |_ __ __ _ _ __ ___| | __ _| |_ _ ___ _ __ | |__ __ _____| |__ __ _ _ __ __ _ ___
|
8
|
+
# | | '__/ _` | '_ \/ __| |/ _` | __| |/ _ \| '_ \| __| \ \/ / __| '_ \ / _` | '_ \ / _` |/ _ \
|
9
|
+
# | | | | (_| | | | \__ \ | (_| | |_| | (_) | | | | |____ > < (__| | | | (_| | | | | (_| | __/
|
10
|
+
# |_|_| \__,_|_| |_|___/_|\__,_|\__|_|\___/|_| |_|______/_/\_\___|_| |_|\__,_|_| |_|\__, |\___|
|
11
|
+
# __/ |
|
12
|
+
# |___/
|
13
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
14
|
+
# a copy of this software and associated documentation files (the
|
15
|
+
# "Software"), to deal in the Software without restriction, including
|
16
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
17
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
18
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
19
|
+
# the following conditions:
|
20
|
+
#
|
21
|
+
# The above copyright notice and this permission notice shall be
|
22
|
+
# included in all copies or substantial portions of the Software.
|
23
|
+
#
|
24
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
25
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
26
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
27
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
28
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
29
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
30
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
31
|
+
#++
|
32
|
+
|
33
|
+
|
1
34
|
require 'tml'
|
2
35
|
|
3
36
|
namespace :tml do
|
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.7.
|
4
|
+
version: 5.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Berkovich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -76,7 +76,6 @@ files:
|
|
76
76
|
- lib/tml/language_context_rule.rb
|
77
77
|
- lib/tml/languages/en.json
|
78
78
|
- lib/tml/logger.rb
|
79
|
-
- lib/tml/postoffice.rb
|
80
79
|
- lib/tml/rules_engine/evaluator.rb
|
81
80
|
- lib/tml/rules_engine/parser.rb
|
82
81
|
- lib/tml/session.rb
|
@@ -102,7 +101,7 @@ files:
|
|
102
101
|
- tasks/tml/cache.rake
|
103
102
|
homepage: https://github.com/translationexchange/tml-ruby
|
104
103
|
licenses:
|
105
|
-
- MIT-
|
104
|
+
- MIT-CMU
|
106
105
|
metadata: {}
|
107
106
|
post_install_message:
|
108
107
|
rdoc_options: []
|
@@ -120,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
119
|
version: '0'
|
121
120
|
requirements: []
|
122
121
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
122
|
+
rubygems_version: 2.7.1
|
124
123
|
signing_key:
|
125
124
|
specification_version: 4
|
126
125
|
summary: Tml Core Classes
|
data/lib/tml/postoffice.rb
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
#--
|
3
|
-
# Copyright (c) 2016 Translation Exchange, Inc
|
4
|
-
#
|
5
|
-
# _______ _ _ _ ______ _
|
6
|
-
# |__ __| | | | | (_) | ____| | |
|
7
|
-
# | |_ __ __ _ _ __ ___| | __ _| |_ _ ___ _ __ | |__ __ _____| |__ __ _ _ __ __ _ ___
|
8
|
-
# | | '__/ _` | '_ \/ __| |/ _` | __| |/ _ \| '_ \| __| \ \/ / __| '_ \ / _` | '_ \ / _` |/ _ \
|
9
|
-
# | | | | (_| | | | \__ \ | (_| | |_| | (_) | | | | |____ > < (__| | | | (_| | | | | (_| | __/
|
10
|
-
# |_|_| \__,_|_| |_|___/_|\__,_|\__|_|\___/|_| |_|______/_/\_\___|_| |_|\__,_|_| |_|\__, |\___|
|
11
|
-
# __/ |
|
12
|
-
# |___/
|
13
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
14
|
-
# a copy of this software and associated documentation files (the
|
15
|
-
# "Software"), to deal in the Software without restriction, including
|
16
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
17
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
18
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
19
|
-
# the following conditions:
|
20
|
-
#
|
21
|
-
# The above copyright notice and this permission notice shall be
|
22
|
-
# included in all copies or substantial portions of the Software.
|
23
|
-
#
|
24
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
25
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
26
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
27
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
28
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
29
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
30
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
31
|
-
#++
|
32
|
-
|
33
|
-
module Tml
|
34
|
-
|
35
|
-
class << self
|
36
|
-
attr_accessor :postoffice
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.postoffice
|
40
|
-
@postoffice ||= begin
|
41
|
-
po_config = Tml.config.postoffice || {}
|
42
|
-
Tml::Postoffice.new(
|
43
|
-
key: po_config[:key],
|
44
|
-
token: po_config[:token],
|
45
|
-
host: po_config[:host]
|
46
|
-
)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
class Postoffice < Tml::Base
|
51
|
-
|
52
|
-
PO_HOST = 'https://postoffice.translationexchange.com'
|
53
|
-
API_VERSION = 'v1'
|
54
|
-
|
55
|
-
attributes :host, :key, :access_token
|
56
|
-
|
57
|
-
# API host
|
58
|
-
def host
|
59
|
-
super || PO_HOST
|
60
|
-
end
|
61
|
-
|
62
|
-
# API token
|
63
|
-
def token
|
64
|
-
access_token
|
65
|
-
end
|
66
|
-
|
67
|
-
# Postoffice API client
|
68
|
-
def deliver(to, template, tokens = {}, options = {})
|
69
|
-
if key.blank?
|
70
|
-
Tml.logger.error("Failed to deliver #{template} to #{to} - PostOffice has not been configured")
|
71
|
-
return
|
72
|
-
end
|
73
|
-
|
74
|
-
Tml.logger.debug("Delivering #{template} to #{to}")
|
75
|
-
params = {
|
76
|
-
client_id: key,
|
77
|
-
template: template,
|
78
|
-
tokens: tokens,
|
79
|
-
to: to,
|
80
|
-
via: options[:via],
|
81
|
-
from: options[:from],
|
82
|
-
locale: options[:locale],
|
83
|
-
first_name: options[:first_name],
|
84
|
-
last_name: options[:last_name],
|
85
|
-
name: options[:name]
|
86
|
-
}
|
87
|
-
params = Tml::Utils.remove_nils(params)
|
88
|
-
api_client.execute_request("#{host}/api/#{API_VERSION}/deliver", params, {:method => :post})
|
89
|
-
end
|
90
|
-
|
91
|
-
private
|
92
|
-
|
93
|
-
# Create API client
|
94
|
-
def api_client
|
95
|
-
@api_client ||= Tml.config.api_client[:class].new(application: self)
|
96
|
-
end
|
97
|
-
|
98
|
-
end
|
99
|
-
end
|