web_translate_it 2.5.3 → 2.6.1

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.
@@ -1,11 +1,10 @@
1
- # encoding: utf-8
2
1
  module WebTranslateIt
3
- class Term
2
+ class Term # rubocop:todo Metrics/ClassLength
4
3
  require 'net/https'
5
4
  require 'multi_json'
6
-
5
+
7
6
  attr_accessor :id, :text, :description, :created_at, :updated_at, :translations, :new_record
8
-
7
+
9
8
  # Initialize a new WebTranslateIt::Term
10
9
  #
11
10
  # Implementation Example:
@@ -19,18 +18,18 @@ module WebTranslateIt
19
18
  # WebTranslateIt::Term.new({ "text" => "Hello", "translations" => [translation_es, translation_fr]})
20
19
  #
21
20
  # to instantiate a new Term with a Term Translations in Spanish and French.
22
-
21
+
23
22
  def initialize(params = {})
24
23
  params.stringify_keys!
25
- self.id = params["id"] || nil
26
- self.text = params["text"] || nil
27
- self.description = params["description"] || nil
28
- self.created_at = params["created_at"] || nil
29
- self.updated_at = params["updated_at"] || nil
30
- self.translations = params["translations"] || []
24
+ self.id = params['id'] || nil
25
+ self.text = params['text'] || nil
26
+ self.description = params['description'] || nil
27
+ self.created_at = params['created_at'] || nil
28
+ self.updated_at = params['updated_at'] || nil
29
+ self.translations = params['translations'] || []
31
30
  self.new_record = true
32
31
  end
33
-
32
+
34
33
  # Fetch all terms
35
34
  #
36
35
  # Implementation Example:
@@ -40,27 +39,27 @@ module WebTranslateIt
40
39
  # end
41
40
  #
42
41
  # puts terms.inspect #=> An array of WebTranslateIt::Term objects
43
-
44
- def self.find_all(params = {})
42
+
43
+ def self.find_all(params = {}) # rubocop:todo Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
45
44
  success = true
46
45
  tries ||= 3
47
46
  params.stringify_keys!
48
47
  url = "/api/projects/#{Connection.api_key}/terms.yaml"
49
- url += '?' + HashUtil.to_params(params) unless params.empty?
48
+ url += "?#{HashUtil.to_params(params)}" unless params.empty?
50
49
 
51
50
  request = Net::HTTP::Get.new(url)
52
51
  WebTranslateIt::Util.add_fields(request)
53
52
  begin
54
53
  terms = []
55
- while(request) do
54
+ while request
56
55
  response = Connection.http_connection.request(request)
57
56
  YAML.load(response.body).each do |term_response|
58
57
  term = WebTranslateIt::Term.new(term_response)
59
58
  term.new_record = false
60
59
  terms.push(term)
61
60
  end
62
- if response["Link"] && response["Link"].include?("rel=\"next\"")
63
- url = response["Link"].match(/<(.*)>; rel="next"/)[1]
61
+ if response['Link']&.include?('rel="next"')
62
+ url = response['Link'].match(/<(.*)>; rel="next"/)[1]
64
63
  request = Net::HTTP::Get.new(url)
65
64
  WebTranslateIt::Util.add_fields(request)
66
65
  else
@@ -69,8 +68,8 @@ module WebTranslateIt
69
68
  end
70
69
  return terms
71
70
  rescue Timeout::Error
72
- puts "Request timeout. Will retry in 5 seconds."
73
- if (tries -= 1) > 0
71
+ puts 'Request timeout. Will retry in 5 seconds.'
72
+ if (tries -= 1).positive?
74
73
  sleep(5)
75
74
  retry
76
75
  else
@@ -79,7 +78,7 @@ module WebTranslateIt
79
78
  end
80
79
  success
81
80
  end
82
-
81
+
83
82
  # Find a Term based on its ID
84
83
  # Returns a Term object or nil if not found.
85
84
  #
@@ -93,8 +92,8 @@ module WebTranslateIt
93
92
  #
94
93
  # to find and instantiate the Term which ID is `1234`.
95
94
  #
96
-
97
- def self.find(term_id)
95
+
96
+ def self.find(term_id) # rubocop:todo Metrics/MethodLength, Metrics/AbcSize
98
97
  success = true
99
98
  tries ||= 3
100
99
  request = Net::HTTP::Get.new("/api/projects/#{Connection.api_key}/terms/#{term_id}.yaml")
@@ -102,12 +101,13 @@ module WebTranslateIt
102
101
  begin
103
102
  response = Connection.http_connection.request(request)
104
103
  return nil if response.code.to_i == 404
104
+
105
105
  term = WebTranslateIt::Term.new(YAML.load(response.body))
106
106
  term.new_record = false
107
107
  return term
108
108
  rescue Timeout::Error
109
- puts "Request timeout. Will retry in 5 seconds."
110
- if (tries -= 1) > 0
109
+ puts 'Request timeout. Will retry in 5 seconds.'
110
+ if (tries -= 1).positive?
111
111
  sleep(5)
112
112
  retry
113
113
  else
@@ -129,9 +129,9 @@ module WebTranslateIt
129
129
  #
130
130
 
131
131
  def save
132
- self.new_record ? self.create : self.update
132
+ new_record ? create : update
133
133
  end
134
-
134
+
135
135
  # Delete a Term on WebTranslateIt.com
136
136
  #
137
137
  # Implementation Example:
@@ -141,17 +141,17 @@ module WebTranslateIt
141
141
  # term.delete
142
142
  # end
143
143
  #
144
-
145
- def delete
144
+
145
+ def delete # rubocop:todo Metrics/MethodLength
146
146
  success = true
147
147
  tries ||= 3
148
- request = Net::HTTP::Delete.new("/api/projects/#{Connection.api_key}/terms/#{self.id}")
148
+ request = Net::HTTP::Delete.new("/api/projects/#{Connection.api_key}/terms/#{id}")
149
149
  WebTranslateIt::Util.add_fields(request)
150
150
  begin
151
151
  Util.handle_response(Connection.http_connection.request(request), true, true)
152
152
  rescue Timeout::Error
153
- puts "Request timeout. Will retry in 5 seconds."
154
- if (tries -= 1) > 0
153
+ puts 'Request timeout. Will retry in 5 seconds.'
154
+ if (tries -= 1).positive?
155
155
  sleep(5)
156
156
  retry
157
157
  else
@@ -160,7 +160,7 @@ module WebTranslateIt
160
160
  end
161
161
  success
162
162
  end
163
-
163
+
164
164
  # Gets a Translation for a Term
165
165
  #
166
166
  # Implementation Example:
@@ -170,29 +170,30 @@ module WebTranslateIt
170
170
  # puts term.translation_for("fr") #=> A TermTranslation object
171
171
  # end
172
172
  #
173
-
174
- def translation_for(locale)
173
+
174
+ def translation_for(locale) # rubocop:todo Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
175
175
  success = true
176
176
  tries ||= 3
177
- translation = self.translations.detect{ |t| t.locale == locale }
177
+ translation = translations.detect { |t| t.locale == locale }
178
178
  return translation if translation
179
- return nil if self.new_record
180
- request = Net::HTTP::Get.new("/api/projects/#{Connection.api_key}/terms/#{self.id}/locales/#{locale}/translations.yaml")
179
+ return nil if new_record
180
+
181
+ request = Net::HTTP::Get.new("/api/projects/#{Connection.api_key}/terms/#{id}/locales/#{locale}/translations.yaml")
181
182
  WebTranslateIt::Util.add_fields(request)
182
183
  begin
183
184
  response = Util.handle_response(Connection.http_connection.request(request), true, true)
184
185
  array = YAML.load(response)
185
186
  return nil if array.empty?
187
+
186
188
  translations = []
187
- array.each do |translation|
188
- term_translation = WebTranslateIt::TermTranslation.new(translation)
189
+ array.each do |trans|
190
+ term_translation = WebTranslateIt::TermTranslation.new(trans)
189
191
  translations.push(term_translation)
190
192
  end
191
193
  return translations
192
-
193
194
  rescue Timeout::Error
194
- puts "Request timeout. Will retry in 5 seconds."
195
- if (tries -= 1) > 0
195
+ puts 'Request timeout. Will retry in 5 seconds.'
196
+ if (tries -= 1).positive?
196
197
  sleep(5)
197
198
  retry
198
199
  else
@@ -204,23 +205,23 @@ module WebTranslateIt
204
205
 
205
206
  protected
206
207
 
207
- def update
208
+ def update # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
208
209
  success = true
209
210
  tries ||= 3
210
- request = Net::HTTP::Put.new("/api/projects/#{Connection.api_key}/terms/#{self.id}.yaml")
211
+ request = Net::HTTP::Put.new("/api/projects/#{Connection.api_key}/terms/#{id}.yaml")
211
212
  WebTranslateIt::Util.add_fields(request)
212
- request.body = self.to_json
213
+ request.body = to_json
213
214
 
214
- self.translations.each do |translation|
215
- translation.term_id = self.id
215
+ translations.each do |translation|
216
+ translation.term_id = id
216
217
  translation.save
217
218
  end
218
219
 
219
220
  begin
220
221
  Util.handle_response(Connection.http_connection.request(request), true, true)
221
222
  rescue Timeout::Error
222
- puts "Request timeout. Will retry in 5 seconds."
223
- if (tries -= 1) > 0
223
+ puts 'Request timeout. Will retry in 5 seconds.'
224
+ if (tries -= 1).positive?
224
225
  sleep(5)
225
226
  retry
226
227
  else
@@ -229,23 +230,22 @@ module WebTranslateIt
229
230
  end
230
231
  success
231
232
  end
232
-
233
- def create
233
+
234
+ def create # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
234
235
  success = true
235
236
  tries ||= 3
236
237
  request = Net::HTTP::Post.new("/api/projects/#{Connection.api_key}/terms")
237
238
  WebTranslateIt::Util.add_fields(request)
238
- request.body = self.to_json(true)
239
+ request.body = to_json(true)
239
240
 
240
241
  begin
241
242
  response = YAML.load(Util.handle_response(Connection.http_connection.request(request), true, true))
242
- self.id = response["id"]
243
+ self.id = response['id']
243
244
  self.new_record = false
244
245
  return true
245
-
246
246
  rescue Timeout::Error
247
- puts "Request timeout. Will retry in 5 seconds."
248
- if (tries -= 1) > 0
247
+ puts 'Request timeout. Will retry in 5 seconds.'
248
+ if (tries -= 1).positive?
249
249
  sleep(5)
250
250
  retry
251
251
  else
@@ -254,17 +254,17 @@ module WebTranslateIt
254
254
  end
255
255
  success
256
256
  end
257
-
258
- def to_json(with_translations = false)
257
+
258
+ def to_json(with_translations = false) # rubocop:todo Metrics/MethodLength
259
259
  hash = {
260
- "id" => id,
261
- "text" => text,
262
- "description" => description
260
+ 'id' => id,
261
+ 'text' => text,
262
+ 'description' => description
263
263
  }
264
- if self.translations.any? && with_translations
265
- hash.update({ "translations" => [] })
264
+ if translations.any? && with_translations
265
+ hash.update({ 'translations' => [] })
266
266
  translations.each do |translation|
267
- hash["translations"].push(translation.to_hash)
267
+ hash['translations'].push(translation.to_hash)
268
268
  end
269
269
  end
270
270
  MultiJson.dump(hash)
@@ -1,11 +1,10 @@
1
- # encoding: utf-8
2
1
  module WebTranslateIt
3
2
  class TermTranslation
4
3
  require 'net/https'
5
4
  require 'multi_json'
6
-
5
+
7
6
  attr_accessor :id, :locale, :text, :description, :status, :new_record, :term_id
8
-
7
+
9
8
  # Initialize a new WebTranslateIt::TermTranslation
10
9
  #
11
10
  # Implementation Example:
@@ -14,18 +13,18 @@ module WebTranslateIt
14
13
  #
15
14
  # to instantiate a new TermTranslation.
16
15
  #
17
-
16
+
18
17
  def initialize(params = {})
19
18
  params.stringify_keys!
20
- self.id = params["id"] || nil
21
- self.locale = params["locale"] || nil
22
- self.text = params["text"] || nil
23
- self.description = params["description"] || nil
24
- self.status = params["status"] || nil
25
- self.term_id = params["term_id"] || nil
19
+ self.id = params['id'] || nil
20
+ self.locale = params['locale'] || nil
21
+ self.text = params['text'] || nil
22
+ self.description = params['description'] || nil
23
+ self.status = params['status'] || nil
24
+ self.term_id = params['term_id'] || nil
26
25
  self.new_record = true
27
26
  end
28
-
27
+
29
28
  # Update or Create a WebTranslateIt::TermTranslation
30
29
  #
31
30
  # Implementation Example:
@@ -35,43 +34,42 @@ module WebTranslateIt
35
34
  # translation.save
36
35
  # end
37
36
  #
38
-
37
+
39
38
  def save
40
- self.new_record ? self.create : self.update
39
+ new_record ? create : update
41
40
  end
42
-
41
+
43
42
  def to_hash
44
43
  {
45
- "id" => id,
46
- "locale" => locale,
47
- "text" => text,
48
- "description" => description,
49
- "status" => status
44
+ 'id' => id,
45
+ 'locale' => locale,
46
+ 'text' => text,
47
+ 'description' => description,
48
+ 'status' => status
50
49
  }
51
50
  end
52
51
 
53
- def to_json
54
- MultiJson.dump(self.to_hash)
52
+ def to_json(*_args)
53
+ MultiJson.dump(to_hash)
55
54
  end
56
-
55
+
57
56
  protected
58
-
59
- def create
57
+
58
+ def create # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
60
59
  success = true
61
60
  tries ||= 3
62
- request = Net::HTTP::Post.new("/api/projects/#{Connection.api_key}/terms/#{self.term_id}/locales/#{self.locale}/translations")
61
+ request = Net::HTTP::Post.new("/api/projects/#{Connection.api_key}/terms/#{term_id}/locales/#{locale}/translations")
63
62
  WebTranslateIt::Util.add_fields(request)
64
- request.body = self.to_json
63
+ request.body = to_json
65
64
 
66
65
  begin
67
66
  response = YAML.load(Util.handle_response(Connection.http_connection.request(request), true, true))
68
- self.id = response["id"]
67
+ self.id = response['id']
69
68
  self.new_record = false
70
69
  return true
71
-
72
70
  rescue Timeout::Error
73
- puts "Request timeout. Will retry in 5 seconds."
74
- if (tries -= 1) > 0
71
+ puts 'Request timeout. Will retry in 5 seconds.'
72
+ if (tries -= 1).positive?
75
73
  sleep(5)
76
74
  retry
77
75
  else
@@ -81,17 +79,17 @@ module WebTranslateIt
81
79
  success
82
80
  end
83
81
 
84
- def update
82
+ def update # rubocop:todo Metrics/MethodLength
85
83
  success = true
86
84
  tries ||= 3
87
- request = Net::HTTP::Put.new("/api/projects/#{Connection.api_key}/terms/#{self.id}/locales/#{self.locale}/translations/#{self.id}")
85
+ request = Net::HTTP::Put.new("/api/projects/#{Connection.api_key}/terms/#{id}/locales/#{locale}/translations/#{id}")
88
86
  WebTranslateIt::Util.add_fields(request)
89
- request.body = self.to_json
87
+ request.body = to_json
90
88
  begin
91
- Util.handle_response(Connection.http_connection.request(request), true, true)
89
+ Util.handle_response(Connection.http_connection.request(request), true, true)
92
90
  rescue Timeout::Error
93
- puts "Request timeout. Will retry in 5 seconds."
94
- if (tries -= 1) > 0
91
+ puts 'Request timeout. Will retry in 5 seconds.'
92
+ if (tries -= 1).positive?
95
93
  sleep(5)
96
94
  retry
97
95
  else
@@ -1,11 +1,10 @@
1
- # encoding: utf-8
2
1
  module WebTranslateIt
3
2
  class Translation
4
3
  require 'net/https'
5
4
  require 'multi_json'
6
-
5
+
7
6
  attr_accessor :id, :locale, :text, :status, :created_at, :updated_at, :version, :string_id
8
-
7
+
9
8
  # Initialize a new WebTranslateIt::Translation
10
9
  #
11
10
  # Implementation Example:
@@ -14,23 +13,19 @@ module WebTranslateIt
14
13
  #
15
14
  # to instantiate a new Translation without any text.
16
15
  #
17
-
18
- def initialize(params = {})
16
+
17
+ def initialize(params = {}) # rubocop:todo Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
19
18
  params.stringify_keys!
20
- self.id = params["id"] || nil
21
- self.locale = params["locale"] || nil
22
- self.text = params["text"] || nil
23
- self.status = params["status"] || "status_unproofread"
24
- self.created_at = params["created_at"] || nil
25
- self.updated_at = params["updated_at"] || nil
26
- self.version = params["version"] || nil
27
- if params["string"]
28
- self.string_id = params["string"]["id"]
29
- else
30
- self.string_id = nil
31
- end
19
+ self.id = params['id'] || nil
20
+ self.locale = params['locale'] || nil
21
+ self.text = params['text'] || nil
22
+ self.status = params['status'] || 'status_unproofread'
23
+ self.created_at = params['created_at'] || nil
24
+ self.updated_at = params['updated_at'] || nil
25
+ self.version = params['version'] || nil
26
+ self.string_id = (params['string']['id'] if params['string'])
32
27
  end
33
-
28
+
34
29
  # Save a WebTranslateIt::Translation
35
30
  #
36
31
  # Implementation Example:
@@ -40,35 +35,33 @@ module WebTranslateIt
40
35
  # translation.save
41
36
  # end
42
37
  #
43
-
44
- def save
38
+
39
+ def save # rubocop:todo Metrics/MethodLength
45
40
  tries ||= 3
46
- request = Net::HTTP::Post.new("/api/projects/#{Connection.api_key}/strings/#{self.string_id}/locales/#{self.locale}/translations")
41
+ request = Net::HTTP::Post.new("/api/projects/#{Connection.api_key}/strings/#{string_id}/locales/#{locale}/translations")
47
42
  WebTranslateIt::Util.add_fields(request)
48
- request.body = self.to_json
43
+ request.body = to_json
49
44
  begin
50
45
  Util.handle_response(Connection.http_connection.request(request), true, true)
51
46
  rescue Timeout::Error
52
- puts "Request timeout. Will retry in 5 seconds."
53
- if (tries -= 1) > 0
47
+ puts 'Request timeout. Will retry in 5 seconds.'
48
+ if (tries -= 1).positive?
54
49
  sleep(5)
55
50
  retry
56
- else
57
- success = false
58
51
  end
59
52
  end
60
53
  end
61
-
54
+
62
55
  def to_hash
63
56
  {
64
- "locale" => locale,
65
- "text" => text,
66
- "status" => status
57
+ 'locale' => locale,
58
+ 'text' => text,
59
+ 'status' => status
67
60
  }
68
61
  end
69
62
 
70
- def to_json
71
- MultiJson.dump(self.to_hash)
63
+ def to_json(*_args)
64
+ MultiJson.dump(to_hash)
72
65
  end
73
66
  end
74
67
  end