web_translate_it 2.7.0 → 2.7.1

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
  SHA256:
3
- metadata.gz: 6cef77421b30d347178a38e6fe50300e44d41a2c47fe46736ad79d76bc891374
4
- data.tar.gz: e3d93cec2762262b06a8eb5aa2f71a901eb5ba77ff09b1e2f85462f765617501
3
+ metadata.gz: 269b89b988031ffdaa8bb761411e0e93f12be4e415b48c4b6877d104ee241f06
4
+ data.tar.gz: 51706b4f7ed1d249d67050f32fd81de7c6ede08cf763ab7faaa33b5619aa9c9e
5
5
  SHA512:
6
- metadata.gz: 154b48ea91ca07bc107ff3b551678bf152a791db84432be020d1e3f3444c7f0830f303f5a222947fdbf1178638648df973f1c2ff8755c8db30e22c8916808c75
7
- data.tar.gz: 1bbf7533a388aeec98f9d0541c1839d95d18ed99d0cf2ccb4bb6400cb0852ddd8d98d04e4d29315b55c05790e70095db5d5a418ac47a1b47234ca84da495cf5b
6
+ metadata.gz: d36a9194b73e6b9fe21c720874c2e86308944b909901cdcbb72e2dd7978dd05f42d40bfa2a0dfbdd11439781b0bed0b069a72b72eb4f7089fd42398e1151c7a3
7
+ data.tar.gz: aa9e14cace635cc65b209be7d3e25a969d303ee79b47f64aebfd2572ba47a3531190f70286ca046e90c6210f20ecd7bca45c8c41a47a390dfcb2fd937d1a36bb
data/history.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## Version 2.7.1 / 2022-10-14
2
+
3
+ * Potential fix potential for issue `uninitialized constant WebTranslateIt::TranslationFile::Multipart`.
4
+ * Code refactoring.
5
+
1
6
  ## Version 2.7.0 / 2022-10-10
2
7
 
3
8
  * New: Ability to see translation statistics per file.
@@ -2,8 +2,6 @@ module WebTranslateIt
2
2
 
3
3
  class CommandLine # rubocop:todo Metrics/ClassLength
4
4
 
5
- require 'fileutils'
6
- require 'set'
7
5
  attr_accessor :configuration, :global_options, :command_options, :parameters
8
6
 
9
7
  def initialize(command, command_options, _global_options, parameters, project_path) # rubocop:todo Metrics/CyclomaticComplexity, Metrics/MethodLength
@@ -418,7 +416,6 @@ module WebTranslateIt
418
416
  puts 'Warning: `config/translation.yml` is deprecated in favour of a `.wti` file.'
419
417
  return 'config/translation.yml' unless Util.ask_yes_no('Would you like to migrate your configuration now?', true)
420
418
 
421
- require 'fileutils'
422
419
  return '.wti' if FileUtils.mv('config/translation.yml', '.wti')
423
420
 
424
421
  puts 'Couldn’t move `config/translation.yml`.'
@@ -8,9 +8,6 @@ module WebTranslateIt
8
8
  #
9
9
  class Configuration
10
10
 
11
- require 'yaml'
12
- require 'fileutils'
13
- require 'erb'
14
11
  attr_accessor :path, :api_key, :source_locale, :target_locales, :files, :ignore_locales, :needed_locales, :logger, :before_pull, :after_pull, :before_push, :after_push, :project_name, :path_to_config_file, :ignore_files
15
12
 
16
13
  # Load configuration file from the path.
@@ -30,10 +27,11 @@ module WebTranslateIt
30
27
  else
31
28
  YAML.load WebTranslateIt::Project.fetch_info(api_key)
32
29
  end
33
- set_locales_to_ignore(configuration)
34
- set_locales_needed(configuration)
35
- set_files(project_info['project'])
36
- set_locales(project_info['project'])
30
+ self.ignore_locales = locales_to_ignore(configuration)
31
+ self.needed_locales = locales_needed(configuration)
32
+ self.files = files_from_project(project_info['project'])
33
+ self.source_locale = source_locale_from_project(project_info['project'])
34
+ self.target_locales = target_locales_from_project(project_info['project'])
37
35
  self.project_name = project_info['project']['name']
38
36
  else
39
37
  puts StringUtil.failure("\nNo configuration file found in #{File.expand_path(path_to_config_file, path)}")
@@ -43,23 +41,24 @@ module WebTranslateIt
43
41
 
44
42
  # Reload project data
45
43
  #
46
- def reload
44
+ def reload # rubocop:todo Metrics/AbcSize
47
45
  project_info = YAML.load WebTranslateIt::Project.fetch_info(api_key)
48
- set_locales_to_ignore(configuration)
49
- set_locales_needed(configuration)
50
- set_files(project_info['project'])
51
- set_locales(project_info['project'])
46
+ self.ignore_locales = locales_to_ignore(configuration)
47
+ self.needed_locales = locales_needed(configuration)
48
+ self.files = files_from_project(project_info['project'])
49
+ self.source_locale = source_locale_from_project(project_info['project'])
50
+ self.target_locales = target_locales_from_project(project_info['project'])
52
51
  self.project_name = project_info['project']['name']
53
52
  end
54
53
 
55
- # Set the project locales from the Project API.
56
- # Implementation example:
57
- #
58
- # configuration = WebTranslateIt::Configuration.new
59
- # locales = configuration.locales # returns an array of locales: ['en', 'fr', 'es', ...]
60
- def set_locales(project)
61
- self.source_locale = project['source_locale']['code']
62
- self.target_locales = project['target_locales'].map { |locale| locale['code'] }
54
+ # Returns the source locale from the Project API.
55
+ def source_locale_from_project(project)
56
+ project['source_locale']['code']
57
+ end
58
+
59
+ # Returns the target locales from the Project API.
60
+ def target_locales_from_project(project)
61
+ project['target_locales'].map { |locale| locale['code'] }
63
62
  end
64
63
 
65
64
  # Set the project files from the Project API.
@@ -67,33 +66,34 @@ module WebTranslateIt
67
66
  #
68
67
  # configuration = WebTranslateIt::Configuration.new
69
68
  # files = configuration.files # returns an array of TranslationFile
70
- def set_files(project) # rubocop:todo Metrics/AbcSize
71
- self.files = []
69
+ def files_from_project(project) # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
70
+ array_files = []
72
71
  project['project_files'].each do |project_file|
73
72
  if project_file['name'].nil? || (project_file['name'].strip == '')
74
73
  puts "File #{project_file['id']} not set up"
75
74
  elsif ignore_files&.any? { |glob| File.fnmatch(glob, project_file['name']) }
76
75
  puts "Ignoring #{project_file['name']}"
77
76
  else
78
- files.push TranslationFile.new(project_file['id'], project_file['name'], project_file['locale_code'], api_key, project_file['updated_at'], project_file['hash_file'], project_file['master_project_file_id'], project_file['fresh'])
77
+ array_files.push TranslationFile.new(project_file['id'], project_file['name'], project_file['locale_code'], api_key, project_file['updated_at'], project_file['hash_file'], project_file['master_project_file_id'], project_file['fresh'])
79
78
  end
80
79
  end
80
+ array_files
81
81
  end
82
82
 
83
- # Set locales to ignore from the configuration file, if set.
84
- def set_locales_to_ignore(configuration)
85
- self.ignore_locales = Array(configuration['ignore_locales']).map(&:to_s)
83
+ # Returns an array of locales to ignore from the configuration file, if set.
84
+ def locales_to_ignore(configuration)
85
+ Array(configuration['ignore_locales']).map(&:to_s)
86
86
  end
87
87
 
88
- # Set locales to specifically pull from the configuration file, if set
89
- def set_locales_needed(configuration)
90
- self.needed_locales = Array(configuration['needed_locales']).map(&:to_s)
88
+ # Returns an array of locales to specifically pull from the configuration file, if set
89
+ def locales_needed(configuration)
90
+ Array(configuration['needed_locales']).map(&:to_s)
91
91
  end
92
92
 
93
- # Set files to ignore from the configuration file, if set.
94
- def set_ignore_files(configuration)
95
- self.ignore_files = Array(configuration['ignore_files']).map(&:to_s)
96
- end
93
+ # # Set files to ignore from the configuration file, if set.
94
+ # def ignore_files(configuration)
95
+ # Array(configuration['ignore_files']).map(&:to_s)
96
+ # end
97
97
 
98
98
  # Convenience method which returns the endpoint for fetching a list of locales for a project.
99
99
  def api_url
@@ -1,15 +1,9 @@
1
- require 'English'
2
1
  module WebTranslateIt
3
2
 
4
3
  class Connection
5
4
 
6
5
  attr_reader :api_key, :http_connection
7
6
 
8
- require 'net/http'
9
- require 'net/https'
10
- require 'openssl'
11
- require 'uri'
12
-
13
7
  @api_key = nil
14
8
  @http_connection = nil
15
9
  @debug = false
@@ -49,7 +43,7 @@ module WebTranslateIt
49
43
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
50
44
  @http_connection = http.start
51
45
  yield @http_connection if block_given?
52
- rescue
46
+ rescue StandardError
53
47
  puts $ERROR_INFO
54
48
  end
55
49
  end
@@ -1,4 +1,3 @@
1
- require 'English'
2
1
  module WebTranslateIt
3
2
 
4
3
  class Project
@@ -25,7 +24,7 @@ module WebTranslateIt
25
24
  else
26
25
  success = false
27
26
  end
28
- rescue
27
+ rescue StandardError
29
28
  puts $ERROR_INFO.inspect
30
29
  end
31
30
  success
@@ -2,8 +2,6 @@ module WebTranslateIt
2
2
 
3
3
  class String # rubocop:todo Metrics/ClassLength
4
4
 
5
- require 'multi_json'
6
-
7
5
  attr_accessor :id, :key, :plural, :type, :dev_comment, :word_count, :status, :category, :labels, :file,
8
6
  :created_at, :updated_at, :translations, :new_record
9
7
 
@@ -2,9 +2,6 @@ module WebTranslateIt
2
2
 
3
3
  class Term # rubocop:todo Metrics/ClassLength
4
4
 
5
- require 'net/https'
6
- require 'multi_json'
7
-
8
5
  attr_accessor :id, :text, :description, :created_at, :updated_at, :translations, :new_record
9
6
 
10
7
  # Initialize a new WebTranslateIt::Term
@@ -2,9 +2,6 @@ module WebTranslateIt
2
2
 
3
3
  class TermTranslation
4
4
 
5
- require 'net/https'
6
- require 'multi_json'
7
-
8
5
  attr_accessor :id, :locale, :text, :description, :status, :new_record, :term_id
9
6
 
10
7
  # Initialize a new WebTranslateIt::TermTranslation
@@ -2,9 +2,6 @@ module WebTranslateIt
2
2
 
3
3
  class Translation
4
4
 
5
- require 'net/https'
6
- require 'multi_json'
7
-
8
5
  attr_accessor :id, :locale, :text, :status, :created_at, :updated_at, :version, :string_id
9
6
 
10
7
  # Initialize a new WebTranslateIt::Translation
@@ -8,11 +8,6 @@ module WebTranslateIt
8
8
  # manipulate a _target_ language file.
9
9
  class TranslationFile # rubocop:todo Metrics/ClassLength
10
10
 
11
- require 'net/https'
12
- require 'net/http/post/multipart'
13
- require 'time'
14
- require 'fileutils'
15
-
16
11
  attr_accessor :id, :file_path, :locale, :api_key, :updated_at, :remote_checksum, :master_id, :fresh
17
12
 
18
13
  def initialize(id, file_path, locale, api_key, updated_at = nil, remote_checksum = '', master_id = nil, fresh = nil) # rubocop:todo Metrics/ParameterLists
@@ -65,7 +60,7 @@ module WebTranslateIt
65
60
  else
66
61
  success = false
67
62
  end
68
- rescue
63
+ rescue StandardError
69
64
  display.push StringUtil.failure("An error occured: #{$ERROR_INFO}")
70
65
  success = false
71
66
  end
@@ -115,7 +110,7 @@ module WebTranslateIt
115
110
  else
116
111
  success = false
117
112
  end
118
- rescue
113
+ rescue StandardError
119
114
  display.push StringUtil.failure("An error occured: #{$ERROR_INFO}")
120
115
  success = false
121
116
  end
@@ -164,7 +159,7 @@ module WebTranslateIt
164
159
  else
165
160
  success = false
166
161
  end
167
- rescue
162
+ rescue StandardError
168
163
  display.push StringUtil.failure("An error occured: #{$ERROR_INFO}")
169
164
  success = false
170
165
  end
@@ -195,7 +190,7 @@ module WebTranslateIt
195
190
  else
196
191
  success = false
197
192
  end
198
- rescue
193
+ rescue StandardError
199
194
  display.push StringUtil.failure("An error occured: #{$ERROR_INFO}")
200
195
  success = false
201
196
  end
@@ -234,12 +229,9 @@ module WebTranslateIt
234
229
  end
235
230
 
236
231
  def local_checksum
237
- require 'digest/sha1'
238
- begin
239
- Digest::SHA1.hexdigest(File.read(file_path))
240
- rescue
241
- ''
242
- end
232
+ Digest::SHA1.hexdigest(File.read(file_path))
233
+ rescue StandardError
234
+ ''
243
235
  end
244
236
 
245
237
  end
@@ -3,8 +3,6 @@ module WebTranslateIt
3
3
  # A few useful functions
4
4
  class Util
5
5
 
6
- require 'multi_json'
7
-
8
6
  # Return a string representing the gem version
9
7
  # For example "1.8.3"
10
8
  def self.version
@@ -1,3 +1,15 @@
1
+ require 'fileutils'
2
+ require 'yaml'
3
+ require 'erb'
4
+ require 'net/http'
5
+ require 'net/https'
6
+ require 'net/http/post/multipart'
7
+ require 'openssl'
8
+ require 'uri'
9
+ require 'multi_json'
10
+ require 'digest/sha1'
11
+ require 'English'
12
+
1
13
  require 'web_translate_it/connection'
2
14
  require 'web_translate_it/util'
3
15
  require 'web_translate_it/util/array_util'
@@ -13,8 +25,6 @@ require 'web_translate_it/auto_fetch'
13
25
  require 'web_translate_it/command_line'
14
26
  require 'web_translate_it/project'
15
27
 
16
- require 'English'
17
-
18
28
  module WebTranslateIt
19
29
 
20
30
  def self.fetch_translations # rubocop:todo Metrics/AbcSize
data/readme.md CHANGED
@@ -187,7 +187,11 @@ Append `--help` for each command for more information. For instance:
187
187
  </tr>
188
188
  <tr>
189
189
  <td>wti status</td>
190
- <td>View project statistics</td>
190
+ <td>View project translation statistics</td>
191
+ </tr>
192
+ <tr>
193
+ <td>wti status config/locales/app/en.yml</td>
194
+ <td>View translation statistics on file config/locales/app/en.yml</td>
191
195
  </tr>
192
196
  <tr>
193
197
  <td>wti match</td>
@@ -210,7 +214,7 @@ Check the [sample `.wti`](https://github.com/webtranslateit/webtranslateit/blob/
210
214
 
211
215
  ## Exit codes
212
216
 
213
- Since version 1.4.0 `wti` returns exit codes on failure. The exit code is `0` if the command executed successfully and `1` if the command executed but encountered at least one error. This is useful to act upon errors if you use `wti` to pull files in an automated build process.
217
+ `wti` returns exit codes on failure. The exit code is `0` if the command executed successfully and `1` if the command executed but encountered at least one error. This is useful to act upon errors if you use `wti` to pull files in an automated build process.
214
218
 
215
219
  ``` zsh
216
220
  ~/code/webtranslateit.com[master]% wti pull
@@ -239,7 +243,7 @@ Pulled 3 files at 3 files/sec, using 3 threads.
239
243
  1
240
244
  ```
241
245
 
242
- Since version 2.4.1 the `wti status` command also returns meaningful codes. It will exit with `0` if the project is 100% translated and proofread, `100` if the project is not 100% translated and `101` if the project is not 100% proofread. This could allow you to check if a project is 100% translated or completed before deploying a project.
246
+ `wti status` command also returns meaningful codes. It will exit with `0` if the project is 100% translated and proofread, `100` if the project is not 100% translated and `101` if the project is not 100% proofread. This could allow you to check if a project is 100% translated or completed before deploying a project.
243
247
 
244
248
  ``` zsh
245
249
  ~/Desktop/test% wti status
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web_translate_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edouard Briere
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-10 00:00:00.000000000 Z
11
+ date: 2022-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json