web_translate_it 1.7.3.1 → 1.8.0.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/examples/en.yml +19 -14
- data/history.md +10 -0
- data/lib/web_translate_it/cacert.pem +3987 -0
- data/lib/web_translate_it/command_line.rb +22 -12
- data/lib/web_translate_it/project.rb +8 -1
- data/lib/web_translate_it/translation_file.rb +15 -22
- data/lib/web_translate_it/util.rb +4 -3
- data/lib/web_translate_it.rb +0 -1
- data/version.yml +3 -3
- metadata +9 -17
- data/lib/web_translate_it/tasks.rb +0 -40
@@ -17,10 +17,12 @@ module WebTranslateIt
|
|
17
17
|
puts ""
|
18
18
|
puts " Pulling files ".bright
|
19
19
|
puts ""
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
WebTranslateIt::Util.http_connection do |http|
|
21
|
+
fetch_locales_to_pull.each do |locale|
|
22
|
+
configuration.files.find_all{ |file| file.locale == locale }.each do |file|
|
23
|
+
print " * #{file.file_path}: "
|
24
|
+
puts file.fetch(http, command_options.force)
|
25
|
+
end
|
24
26
|
end
|
25
27
|
end
|
26
28
|
`#{configuration.after_pull}` if configuration.after_pull
|
@@ -32,10 +34,12 @@ module WebTranslateIt
|
|
32
34
|
puts ""
|
33
35
|
puts " Pushing files ".bright
|
34
36
|
puts ""
|
35
|
-
|
36
|
-
configuration.
|
37
|
-
|
38
|
-
|
37
|
+
WebTranslateIt::Util.http_connection do |http|
|
38
|
+
fetch_locales_to_push(configuration).each do |locale|
|
39
|
+
configuration.files.find_all{ |file| file.locale == locale }.each do |file|
|
40
|
+
print " * #{file.file_path}... "
|
41
|
+
puts file.upload(http, command_options[:merge], command_options.ignore_missing, command_options.label, command_options.low_priority)
|
42
|
+
end
|
39
43
|
end
|
40
44
|
end
|
41
45
|
`#{configuration.after_push}` if configuration.after_push
|
@@ -48,10 +52,12 @@ module WebTranslateIt
|
|
48
52
|
puts "Usage: wti add master_file1 master_file2 ..."
|
49
53
|
exit
|
50
54
|
end
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
+
WebTranslateIt::Util.http_connection do |http|
|
56
|
+
parameters.each do |param|
|
57
|
+
file = TranslationFile.new(nil, param, nil, configuration.api_key)
|
58
|
+
print "Creating #{file.file_path}... "
|
59
|
+
puts file.create(http)
|
60
|
+
end
|
55
61
|
end
|
56
62
|
puts "Master file added.".success
|
57
63
|
end
|
@@ -76,6 +82,10 @@ module WebTranslateIt
|
|
76
82
|
FileUtils.mkpath(path.split('/')[0..path.split('/').size-2].join('/'))
|
77
83
|
project = YAML.load WebTranslateIt::Project.fetch_info(api_key)
|
78
84
|
project_info = project['project']
|
85
|
+
if !File.writable?(path)
|
86
|
+
puts "Error: #{path} is not writable.".failure
|
87
|
+
exit
|
88
|
+
end
|
79
89
|
File.open(path, 'w'){ |file| file << generate_configuration(api_key, project_info) }
|
80
90
|
error = false
|
81
91
|
project_info['project_files'].each do |file|
|
@@ -6,7 +6,14 @@ module WebTranslateIt
|
|
6
6
|
begin
|
7
7
|
WebTranslateIt::Util.http_connection do |http|
|
8
8
|
request = Net::HTTP::Get.new("/api/projects/#{api_key}.yaml")
|
9
|
-
|
9
|
+
response = http.request(request)
|
10
|
+
if response.is_a?(Net::HTTPSuccess)
|
11
|
+
return response.body
|
12
|
+
else
|
13
|
+
puts "An error occured while fetching the project information:"
|
14
|
+
puts response.body.failure
|
15
|
+
exit
|
16
|
+
end
|
10
17
|
end
|
11
18
|
rescue Timeout::Error
|
12
19
|
puts "The request timed out. The service may be overloaded. We will retry in 5 seconds."
|
@@ -35,25 +35,22 @@ module WebTranslateIt
|
|
35
35
|
# file.fetch # returns nothing, with a status 304 Not Modified
|
36
36
|
# file.fetch(true) # force to re-download the file, will return the content of the file with a 200 OK
|
37
37
|
#
|
38
|
-
def fetch(force = false)
|
38
|
+
def fetch(http_connection, force = false)
|
39
39
|
print "#{self.local_checksum.to_s.checksumify}...#{self.remote_checksum.to_s.checksumify} "
|
40
40
|
if !File.exist?(self.file_path) or force or self.remote_checksum != self.local_checksum
|
41
41
|
begin
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
rescue
|
50
|
-
"/!\\ An error occured: #{$!}".failure
|
51
|
-
end
|
42
|
+
response = http_connection.get(api_url)
|
43
|
+
FileUtils.mkpath(self.file_path.split('/')[0..-2].join('/')) unless File.exist?(self.file_path) or self.file_path.split('/')[0..-2].join('/') == ""
|
44
|
+
begin
|
45
|
+
File.open(self.file_path, 'wb'){ |file| file << response.body } if response.code.to_i == 200 and response.body != ''
|
46
|
+
Util.handle_response(response)
|
47
|
+
rescue
|
48
|
+
"/!\\ An error occured: #{$!}".failure
|
52
49
|
end
|
53
50
|
rescue Timeout::Error
|
54
51
|
puts "Request timeout. Will retry in 5 seconds.".failure
|
55
52
|
sleep(5)
|
56
|
-
fetch(force)
|
53
|
+
fetch(http_connection, force)
|
57
54
|
end
|
58
55
|
else
|
59
56
|
return "Skipped (up to date)".success
|
@@ -71,14 +68,12 @@ module WebTranslateIt
|
|
71
68
|
#
|
72
69
|
# Note that the request might or might not eventually be acted upon, as it might be disallowed when processing
|
73
70
|
# actually takes place. This is due to the fact that language file imports are handled by background processing.
|
74
|
-
def upload(merge=false, ignore_missing=false, label=nil, low_priority=false)
|
71
|
+
def upload(http_connection, merge=false, ignore_missing=false, label=nil, low_priority=false)
|
75
72
|
if File.exists?(self.file_path)
|
76
73
|
File.open(self.file_path) do |file|
|
77
74
|
begin
|
78
|
-
|
79
|
-
|
80
|
-
Util.handle_response(http.request(request))
|
81
|
-
end
|
75
|
+
request = Net::HTTP::Put::Multipart.new(api_url, {"file" => UploadIO.new(file, "text/plain", file.path), "merge" => merge, "ignore_missing" => ignore_missing, "label" => label, "low_priority" => low_priority })
|
76
|
+
Util.handle_response(http_connection.request(request))
|
82
77
|
rescue Timeout::Error
|
83
78
|
puts "Request timeout. Will retry in 5 seconds.".failure
|
84
79
|
sleep(5)
|
@@ -101,14 +96,12 @@ module WebTranslateIt
|
|
101
96
|
# Note that the request might or might not eventually be acted upon, as it might be disallowed when processing
|
102
97
|
# actually takes place. This is due to the fact that language file imports are handled by background processing.
|
103
98
|
#
|
104
|
-
def create
|
99
|
+
def create(http_connection)
|
105
100
|
if File.exists?(self.file_path)
|
106
101
|
File.open(self.file_path) do |file|
|
107
102
|
begin
|
108
|
-
|
109
|
-
|
110
|
-
Util.handle_response(http.request(request))
|
111
|
-
end
|
103
|
+
request = Net::HTTP::Post::Multipart.new(api_url_for_create, { "name" => self.file_path, "file" => UploadIO.new(file, "text/plain", file.path) })
|
104
|
+
Util.handle_response(http_connection.request(request))
|
112
105
|
rescue Timeout::Error
|
113
106
|
puts "Request timeout. Will retry in 5 seconds.".failure
|
114
107
|
sleep(5)
|
@@ -11,7 +11,7 @@ module WebTranslateIt
|
|
11
11
|
# Return a string representing the gem version
|
12
12
|
# For example "1.4.4.1"
|
13
13
|
def self.version
|
14
|
-
hash = YAML.load_file File.
|
14
|
+
hash = YAML.load_file File.expand_path('../../../version.yml', __FILE__)
|
15
15
|
[hash[:major], hash[:minor], hash[:tiny], hash[:patch]].join('.')
|
16
16
|
end
|
17
17
|
|
@@ -30,9 +30,10 @@ module WebTranslateIt
|
|
30
30
|
proxy = ENV['http_proxy'] ? URI.parse(ENV['http_proxy']) : OpenStruct.new
|
31
31
|
http = Net::HTTP::Proxy(proxy.host, proxy.port, proxy.user, proxy.password).new('webtranslateit.com', 443)
|
32
32
|
http.use_ssl = true
|
33
|
-
http.verify_mode = OpenSSL::SSL::
|
33
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
34
|
+
http.ca_file = File.expand_path('cacert.pem', __FILE__)
|
34
35
|
http.open_timeout = http.read_timeout = 30
|
35
|
-
yield http
|
36
|
+
yield http.start
|
36
37
|
end
|
37
38
|
|
38
39
|
def self.calculate_percentage(processed, total)
|
data/lib/web_translate_it.rb
CHANGED
data/version.yml
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: web_translate_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
-
|
11
|
-
version: 1.
|
7
|
+
- 8
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.8.0.0
|
12
11
|
platform: ruby
|
13
12
|
authors:
|
14
13
|
- "\xC3\x89douard Bri\xC3\xA8re"
|
@@ -16,7 +15,7 @@ autorequire:
|
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
17
|
|
19
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-31 00:00:00 +02:00
|
20
19
|
default_executable: wti
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
@@ -27,7 +26,6 @@ dependencies:
|
|
27
26
|
requirements:
|
28
27
|
- - ~>
|
29
28
|
- !ruby/object:Gem::Version
|
30
|
-
hash: 19
|
31
29
|
segments:
|
32
30
|
- 1
|
33
31
|
- 1
|
@@ -43,7 +41,6 @@ dependencies:
|
|
43
41
|
requirements:
|
44
42
|
- - ~>
|
45
43
|
- !ruby/object:Gem::Version
|
46
|
-
hash: 83
|
47
44
|
segments:
|
48
45
|
- 1
|
49
46
|
- 16
|
@@ -59,7 +56,6 @@ dependencies:
|
|
59
56
|
requirements:
|
60
57
|
- - ~>
|
61
58
|
- !ruby/object:Gem::Version
|
62
|
-
hash: 19
|
63
59
|
segments:
|
64
60
|
- 1
|
65
61
|
- 2
|
@@ -75,7 +71,6 @@ dependencies:
|
|
75
71
|
requirements:
|
76
72
|
- - ~>
|
77
73
|
- !ruby/object:Gem::Version
|
78
|
-
hash: 17
|
79
74
|
segments:
|
80
75
|
- 1
|
81
76
|
- 1
|
@@ -91,7 +86,6 @@ dependencies:
|
|
91
86
|
requirements:
|
92
87
|
- - ">="
|
93
88
|
- !ruby/object:Gem::Version
|
94
|
-
hash: 13
|
95
89
|
segments:
|
96
90
|
- 1
|
97
91
|
- 2
|
@@ -99,7 +93,7 @@ dependencies:
|
|
99
93
|
version: 1.2.9
|
100
94
|
type: :development
|
101
95
|
version_requirements: *id005
|
102
|
-
description: An ruby executable
|
96
|
+
description: An ruby executable and a handful of tools to sync your translations between your app and webtranslateit.com.
|
103
97
|
email: edouard@atelierconvivialite.com
|
104
98
|
executables:
|
105
99
|
- wti
|
@@ -117,12 +111,12 @@ files:
|
|
117
111
|
- examples/locale.rb
|
118
112
|
- examples/translation.yml
|
119
113
|
- lib/web_translate_it/auto_fetch.rb
|
114
|
+
- lib/web_translate_it/cacert.pem
|
120
115
|
- lib/web_translate_it/command_line.rb
|
121
116
|
- lib/web_translate_it/configuration.rb
|
122
117
|
- lib/web_translate_it/project.rb
|
123
118
|
- lib/web_translate_it/public/screen.css
|
124
119
|
- lib/web_translate_it/server.rb
|
125
|
-
- lib/web_translate_it/tasks.rb
|
126
120
|
- lib/web_translate_it/translation_file.rb
|
127
121
|
- lib/web_translate_it/util.rb
|
128
122
|
- lib/web_translate_it/views/index.erb
|
@@ -158,7 +152,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
152
|
requirements:
|
159
153
|
- - ">="
|
160
154
|
- !ruby/object:Gem::Version
|
161
|
-
hash: 3
|
162
155
|
segments:
|
163
156
|
- 0
|
164
157
|
version: "0"
|
@@ -167,14 +160,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
160
|
requirements:
|
168
161
|
- - ">="
|
169
162
|
- !ruby/object:Gem::Version
|
170
|
-
hash: 3
|
171
163
|
segments:
|
172
164
|
- 0
|
173
165
|
version: "0"
|
174
166
|
requirements: []
|
175
167
|
|
176
168
|
rubyforge_project:
|
177
|
-
rubygems_version: 1.
|
169
|
+
rubygems_version: 1.3.7
|
178
170
|
signing_key:
|
179
171
|
specification_version: 3
|
180
172
|
summary: Sync your translations between your app and Web Translate It
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'rake'
|
3
|
-
require 'web_translate_it'
|
4
|
-
namespace :trans do
|
5
|
-
desc "Fetch translation files from Web Translate It"
|
6
|
-
task :fetch, :locale do |task, args|
|
7
|
-
WebTranslateIt::Util.welcome_message
|
8
|
-
puts "Fetching file for locale #{args.locale}..."
|
9
|
-
configuration = WebTranslateIt::Configuration.new
|
10
|
-
configuration.files.find_all{ |file| file.locale == args.locale }.each do |file|
|
11
|
-
puts file.file_path + ": " + file.fetch
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
namespace :fetch do
|
16
|
-
desc "Fetch all the translation files from Web Translate It"
|
17
|
-
task :all do
|
18
|
-
WebTranslateIt::Util.welcome_message
|
19
|
-
configuration = WebTranslateIt::Configuration.new
|
20
|
-
locales = configuration.target_locales
|
21
|
-
configuration.ignore_locales.each{ |locale_to_ignore| locales.delete(locale_to_ignore) }
|
22
|
-
puts "Fetching all files for all locales..."
|
23
|
-
locales.each do |locale|
|
24
|
-
configuration.files.find_all{ |file| file.locale == locale }.each do |file|
|
25
|
-
puts file.file_path + " " + file.fetch
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
desc "Upload the translation files for a locale to Web Translate It"
|
32
|
-
task :upload, :locale do |task, args|
|
33
|
-
WebTranslateIt::Util.welcome_message
|
34
|
-
puts "Uploading file for locale #{args.locale}..."
|
35
|
-
configuration = WebTranslateIt::Configuration.new
|
36
|
-
configuration.files.find_all{ |file| file.locale == args.locale }.each do |file|
|
37
|
-
puts file.file_path + " " + file.upload
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|