web_translate_it 1.4.7 → 1.5.0

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.
data/README.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  This is a gem providing tools to integrate your software to translate with [Web Translate It](https://webtranslateit.com), a web-based translation hub.
10
10
 
11
+ ![Web Translate It](http://s3.amazonaws.com:80/edouard.baconfile.com/web_translate_it%2Fwti.png)
12
+
11
13
  This gem provides your app with:
12
14
 
13
15
  * an executable, `wti`, to upload and download language files from the command line (or in whatever else you want to execute it)
@@ -23,10 +25,8 @@ If your project if already set up on Web Translate It, run `wti autoconf` to gen
23
25
 
24
26
  Run `wti --help` to see the usage:
25
27
 
26
- Web Translate It Help:
27
- **********************
28
- pull Pull language file(s) from Web Translate It.
29
- push Push language file(s) to Web Translate It.
28
+ pull Pull target language file(s) from Web Translate It.
29
+ push Push master language file(s) to Web Translate It.
30
30
  autoconf Configure your project to sync with Web Translate It.
31
31
 
32
32
  OPTIONAL PARAMETERS:
@@ -34,7 +34,8 @@ Run `wti --help` to see the usage:
34
34
  -l --locale The ISO code of a specific locale to pull or push.
35
35
  -c --config Path to a translation.yml file. If this option
36
36
  is absent, looks for config/translation.yml.
37
- --force Force `wti pull` to re-download the language file,
37
+ --all Respectively download or upload all files.
38
+ --force Force wti pull to re-download the language file,
38
39
  regardless if local version is current.
39
40
  OTHER:
40
41
  ------
data/history.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## Version 1.5.0 /2010-02-19
2
+
3
+ Warning, some deprecations in this version.
4
+
5
+ * Remove `wti fetch` and `wti upload`. It was deprecated in 1.4.7 in favour of `wti pull` and `wti push` respectively.
6
+ * `wti push` now only pushes the master language file. Use `wti push --all` to push all or `wti push -l [locale]` to push a specific locale.
7
+ * `wti pull` now only pulls the target language files. Use `wti pull --all` to pull all or `wti pull -l [locale]` to pull a specific locale.
8
+ * Increase read timeout to 40s — Required for very large projects.
9
+ * Bug fix: `wti autoconf` now create directory if it doesn't exist.
10
+ * Bug fix: `wti autoconf` now ask the user where are the locale files.
11
+
1
12
  ## Version 1.4.7 /2010-02-05
2
13
 
3
14
  * Add deprecation warning for `wti --fetch`, `wti -f`. These commands will be deprecated in favour of `wti pull`.
@@ -1,9 +1,10 @@
1
1
  module WebTranslateIt
2
2
  class CommandLine
3
+ require 'fileutils'
3
4
 
4
5
  OPTIONS = <<-OPTION
5
- pull Pull language file(s) from Web Translate It.
6
- push Push language file(s) to Web Translate It.
6
+ pull Pull target language file(s) from Web Translate It.
7
+ push Push master language file(s) to Web Translate It.
7
8
  autoconf Configure your project to sync with Web Translate It.
8
9
 
9
10
  OPTIONAL PARAMETERS:
@@ -11,6 +12,7 @@ OPTIONAL PARAMETERS:
11
12
  -l --locale The ISO code of a specific locale to pull or push.
12
13
  -c --config Path to a translation.yml file. If this option
13
14
  is absent, looks for config/translation.yml.
15
+ --all Respectively download or upload all files.
14
16
  --force Force wti pull to re-download the language file,
15
17
  regardless if local version is current.
16
18
  OTHER:
@@ -31,11 +33,6 @@ OPTION
31
33
  show_version
32
34
  when '-h', '--help'
33
35
  show_options
34
- # deprecated in 1.5.0
35
- when '-f', '--fetch'
36
- fetch
37
- when '-u', '--upload'
38
- upload
39
36
  else
40
37
  puts "Command not found"
41
38
  show_options
@@ -44,7 +41,7 @@ OPTION
44
41
 
45
42
  def self.pull
46
43
  configuration = fetch_configuration
47
- locales = fetch_locales(configuration)
44
+ locales = fetch_locales_to_pull(configuration)
48
45
  configuration.files.each do |file|
49
46
  locales.each do |locale|
50
47
  puts "Pulling #{file.file_path_for_locale(locale)}…"
@@ -55,7 +52,7 @@ OPTION
55
52
 
56
53
  def self.push
57
54
  configuration = fetch_configuration
58
- locales = fetch_locales(configuration)
55
+ locales = fetch_locales_to_push(configuration)
59
56
  configuration.files.each do |file|
60
57
  locales.each do |locale|
61
58
  puts "Pushing #{file.file_path_for_locale(locale)}…"
@@ -72,11 +69,15 @@ OPTION
72
69
  puts "You must enter your project API key provided by Web Translate It"
73
70
  exit
74
71
  end
75
- puts "We will now create a `config/translation.yml` file in the current directory."
76
- puts "Enter below another path if you want to change, or leave it blank if the defaut path is okay."
72
+ puts "Where should we create the configuration file? (Default: `config/translation.yml`)"
77
73
  path = STDIN.gets.strip
78
74
  path = "config/translation.yml" if path == ""
79
- File.open(path, 'w'){ |file| file << generate_configuration(api_key) }
75
+ FileUtils.mkpath(path.split('/')[0..path.split('/').size-1])
76
+ puts "Where are you language files located? (Default: `config/locales/`)"
77
+ path_to_locale_files = STDIN.gets.strip
78
+ path_to_locale_files = "config/locales/" if path_to_locale_files == ""
79
+ FileUtils.mkpath(path.split('/')[0..path.split('/').size-1])
80
+ File.open(path, 'w'){ |file| file << generate_configuration(api_key, path_to_locale_files) }
80
81
  puts "Done! You can now use `wti` to push and pull your language files."
81
82
  puts "Check `wti --help` for more information."
82
83
  end
@@ -93,42 +94,6 @@ OPTION
93
94
  puts "Web Translate It #{WebTranslateIt::Util.version}"
94
95
  end
95
96
 
96
- # deprecated in 1.5.0
97
- def self.fetch
98
- puts "Warning: this command is deprecated and will stop working in 1.5.0."
99
- puts "Use `wti pull` instead. See help: `wti --help`"
100
- configuration = WebTranslateIt::Configuration.new('.')
101
- if ARGV.size == 2
102
- locales = [ARGV[1]]
103
- elsif ARGV.size == 1
104
- locales = configuration.locales
105
- end
106
- configuration.files.each do |file|
107
- locales.each do |locale|
108
- puts "Fetching #{file.file_path_for_locale(locale)}…"
109
- file.fetch(locale)
110
- end
111
- end
112
- end
113
-
114
- # deprecated in 1.5.0
115
- def self.upload
116
- puts "Warning: this command is deprecated and will stop working in 1.5.0."
117
- puts "Use `wti push` instead. See help: `wti --help`"
118
- configuration = WebTranslateIt::Configuration.new('.')
119
- if ARGV.size == 2
120
- locales = [ARGV[1]]
121
- elsif ARGV.size == 1
122
- locales = configuration.locales
123
- end
124
- configuration.files.each do |file|
125
- locales.each do |locale|
126
- puts "Uploading #{file.file_path} in #{locale}…"
127
- file.upload(locale)
128
- end
129
- end
130
- end
131
-
132
97
  def self.fetch_configuration
133
98
  if (index = ARGV.index('-c') || ARGV.index('--config')).nil?
134
99
  configuration = WebTranslateIt::Configuration.new('.')
@@ -138,16 +103,27 @@ OPTION
138
103
  return configuration
139
104
  end
140
105
 
141
- def self.fetch_locales(configuration)
106
+ def self.fetch_locales_to_pull(configuration)
107
+ if (index = ARGV.index('-l') || ARGV.index('--locale')).nil?
108
+ locales = configuration.target_locales
109
+ else
110
+ locales = [ARGV[index+1]]
111
+ end
112
+ locales.push(configuration.source_locale) if ARGV.index('--all')
113
+ return locales.uniq
114
+ end
115
+
116
+ def self.fetch_locales_to_push(configuration)
142
117
  if (index = ARGV.index('-l') || ARGV.index('--locale')).nil?
143
- locales = configuration.locales
118
+ locales = [configuration.source_locale]
144
119
  else
145
120
  locales = [ARGV[index+1]]
146
121
  end
147
- return locales
122
+ locales.push(configuration.target_locales) if ARGV.index('--all')
123
+ return locales.uniq
148
124
  end
149
125
 
150
- def self.generate_configuration(api_key)
126
+ def self.generate_configuration(api_key, path_to_locale_files)
151
127
  project_info = YAML.load WebTranslateIt::Project.fetch_info(api_key)
152
128
  project = project_info['project']
153
129
  file = <<-FILE
@@ -168,7 +144,7 @@ files:
168
144
  FILE
169
145
  project["project_files"].each do |project_file|
170
146
  if project_file["master"]
171
- file << " #{project_file["id"]}: config/locales/" + project_file["name"].gsub(project["source_locale"]["code"], "[locale]") + "\n"
147
+ file << " #{project_file["id"]}: #{path_to_locale_files}" + project_file["name"].gsub(project["source_locale"]["code"], "[locale]") + "\n"
172
148
  end
173
149
  end
174
150
  return file
@@ -9,9 +9,9 @@ module WebTranslateIt
9
9
  class Configuration
10
10
  require 'yaml'
11
11
  require 'fileutils'
12
- attr_accessor :path, :api_key, :files, :ignore_locales, :logger
12
+ attr_accessor :path, :api_key, :source_locale, :target_locales, :files, :ignore_locales, :logger
13
13
 
14
- # Load the configuration file from the path.
14
+ # Load configuration file from the path.
15
15
  def initialize(root_path=RAILS_ROOT, path_to_config="config/translation.yml")
16
16
  self.path = root_path
17
17
  configuration = YAML.load_file(File.join(root_path, path_to_config))
@@ -22,6 +22,7 @@ module WebTranslateIt
22
22
  configuration['files'].each do |file_id, file_path|
23
23
  self.files.push(TranslationFile.new(file_id, root_path + '/' + file_path, api_key))
24
24
  end
25
+ set_locales
25
26
  end
26
27
 
27
28
  # Makes an API request to fetch the list of the different locales for a project.
@@ -29,25 +30,16 @@ module WebTranslateIt
29
30
  #
30
31
  # configuration = WebTranslateIt::Configuration.new
31
32
  # locales = configuration.locales # returns an array of locales: ['en', 'fr', 'es', ...]
32
- #
33
- # TODO: Make this use the new endpoint serving YAML
34
- def locales
35
- WebTranslateIt::Util.http_connection do |http|
36
- request = Net::HTTP::Get.new(api_url)
37
- response = http.request(request)
38
- if response.code.to_i >= 400 and response.code.to_i < 500
39
- puts "----------------------------------------------------------------------"
40
- puts "You API key seems to be misconfigured. It is currently #{self.api_key}."
41
- puts "Change it in RAILS_ROOT/configuration/translation.yml."
42
- else
43
- response.body.split
44
- end
45
- end
33
+ def set_locales
34
+ project_info = YAML.load WebTranslateIt::Project.fetch_info(api_key)
35
+ project = project_info['project']
36
+ self.source_locale = project['source_locale']['code']
37
+ self.target_locales = project['target_locales'].map{|locale| locale['code']}
46
38
  end
47
39
 
48
40
  # Convenience method which returns the endpoint for fetching a list of locales for a project.
49
41
  def api_url
50
- "/api/projects/#{api_key}/locales"
42
+ "/api/projects/#{api_key}.yaml"
51
43
  end
52
44
 
53
45
  # Returns a logger. If RAILS_DEFAULT_LOGGER is defined, use it, else, define a new logger.
@@ -17,7 +17,7 @@ namespace :trans do
17
17
  task :all do
18
18
  welcome_message
19
19
  configuration = WebTranslateIt::Configuration.new
20
- locales = configuration.locales
20
+ locales = configuration.target_locales
21
21
  configuration.ignore_locales.each do |ignore|
22
22
  locales.delete(ignore)
23
23
  end
@@ -23,7 +23,7 @@ module WebTranslateIt
23
23
  http = Net::HTTP.new('webtranslateit.com', 443)
24
24
  http.use_ssl = true
25
25
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
26
- http.read_timeout = 10
26
+ http.read_timeout = 40
27
27
  yield http
28
28
  end
29
29
  end
data/version.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
- :minor: 4
4
- :patch: 7
3
+ :minor: 5
4
+ :patch: 0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web_translate_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.7
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "\xC3\x89douard Bri\xC3\xA8re"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-05 00:00:00 +01:00
12
+ date: 2010-02-19 00:00:00 +01:00
13
13
  default_executable: wti
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency