tml 5.7.4 → 5.7.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|