crowdin-api 0.3.0 → 0.4.0.pre
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.
- checksums.yaml +4 -4
- data/README.md +35 -1
- data/lib/crowdin-api.rb +5 -2
- data/lib/crowdin-api/methods.rb +58 -10
- data/lib/crowdin-api/version.rb +1 -1
- metadata +33 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21b2c419fc865199393792868efd92917fe9350b
|
4
|
+
data.tar.gz: 2bbb0c118a6480be3ca45000682e7d3482597e45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aba7345cf676b48cf41475198e9a0212e3ce46396bb554e31154d634f7258878de24cb292565edc6effbcc48097d962288e4e9a34aeece9b340206bc8bf3bc41
|
7
|
+
data.tar.gz: 3d58d2f449e22e30d098dafe4853a5d1e213215406fd58e6084eef6abff26b50d304a6c065e9eebaec77716d429d1c4c53476f7d0f6d08c55830e8b73a40ce73
|
data/README.md
CHANGED
@@ -4,6 +4,8 @@ A Ruby interface to the Crowdin API.
|
|
4
4
|
|
5
5
|
For more about the Crowdin API see <https://crowdin.com/page/api>.
|
6
6
|
|
7
|
+
To experiment with that code, run `bin/console` for an interactive prompt.
|
8
|
+
|
7
9
|
> **WARNING**: This is a development version: It contains the latest changes, but may also have severe known issues, including crashes and data loss situations. In fact, it may not work at all.
|
8
10
|
|
9
11
|
## Installation
|
@@ -59,6 +61,9 @@ Every file is hash:
|
|
59
61
|
* `:title` - string that defines title for uploaded file (optional)
|
60
62
|
* `:export_pattern` - string that defines name of resulted file (optional)
|
61
63
|
|
64
|
+
Optional params:
|
65
|
+
* `:branch` - a branch name (optional)
|
66
|
+
|
62
67
|
**NOTE!** 20 files max are allowed to upload per one time file transfer.
|
63
68
|
|
64
69
|
```ruby
|
@@ -82,6 +87,9 @@ Every file is hash:
|
|
82
87
|
* `:title` - title for uploaded file (optional)
|
83
88
|
* `:export_pattern` - string that defines name of resulted file (optional)
|
84
89
|
|
90
|
+
Optional params:
|
91
|
+
* `:branch` - a branch name (optional)
|
92
|
+
|
85
93
|
**NOTE!** 20 files max are allowed to upload per one time file transfer.
|
86
94
|
|
87
95
|
```ruby
|
@@ -107,16 +115,31 @@ crowdin.delete_file('strings.xml')
|
|
107
115
|
|
108
116
|
Create a new directory in Crowdin project.
|
109
117
|
|
118
|
+
First parameter `name` - full directory path that should be created (e.g. /MainPage/AboutUs) (required)
|
119
|
+
|
120
|
+
Optional params:
|
121
|
+
* `:is_branch` - create new branch. Valid values - `'0'`, `'1'`. Only when create root directory.
|
122
|
+
* `:branch` - a branch name.
|
123
|
+
|
110
124
|
Documentation: <https://crowdin.com/page/api/add-directory>
|
111
125
|
|
112
126
|
```ruby
|
113
127
|
crowdin.add_directory('dirname')
|
114
128
|
```
|
115
129
|
|
130
|
+
Create a new branch:
|
131
|
+
|
132
|
+
```ruby
|
133
|
+
crowdin.add_directory('master', is_branch: '1')
|
134
|
+
```
|
135
|
+
|
116
136
|
### Delete Directory
|
117
137
|
|
118
138
|
Remove directory with nested files from Crowdin project.
|
119
139
|
|
140
|
+
Optional params:
|
141
|
+
* `:branch` - a branch name (optional)
|
142
|
+
|
120
143
|
Documentation: <https://crowdin.com/page/api/delete-directory>
|
121
144
|
|
122
145
|
```ruby
|
@@ -135,6 +158,8 @@ Optional params:
|
|
135
158
|
* `:new_name` - new directory name
|
136
159
|
* `:title` - new directory title to be displayed in Crowdin UI
|
137
160
|
* `:export_pattern` - new direcrory export pattern. Is used to create directory name and path in resulted translations bundle.
|
161
|
+
* `:branch` - a branch name.
|
162
|
+
|
138
163
|
|
139
164
|
When renaming directory the path can not be changed (it means `new_name` parameter can not contain path, name only).
|
140
165
|
|
@@ -161,6 +186,7 @@ Optional params:
|
|
161
186
|
* `:import_duplicates` - defines whether to add translation if there is the same translation previously added (default: false)
|
162
187
|
* `:import_eq_suggestions` - defines whether to add translation if it is equal to source string at Crowdin (default: false)
|
163
188
|
* `:auto_approve_imported` - mark uploaded translations as approved (default: false)
|
189
|
+
* `:branch` - a branch name (default: nil)
|
164
190
|
|
165
191
|
**NOTE!** 20 files max are allowed to upload per one time file transfer.
|
166
192
|
|
@@ -183,6 +209,11 @@ Documentation: <https://crowdin.com/page/api/download>
|
|
183
209
|
|
184
210
|
First parameter is the language of translation you need or download `all` of them at once.
|
185
211
|
|
212
|
+
Optional params:
|
213
|
+
* `:output` - a name of ZIP file with translations
|
214
|
+
* `:branch` - a branch name (default: nil)
|
215
|
+
|
216
|
+
|
186
217
|
```ruby
|
187
218
|
crowdin.download_translation('ru', :output => '/path/to/download/ru_RU.zip')
|
188
219
|
```
|
@@ -216,6 +247,9 @@ Build ZIP archive with the latest translations.
|
|
216
247
|
Also API call will be ignored if there were no changes in the project since previous export.
|
217
248
|
You can see whether ZIP archive with latest translations was actually build by status attribute (`built` or `skipped`) returned in response.
|
218
249
|
|
250
|
+
Optional params:
|
251
|
+
* `:branch` - a branch name (default: nil)
|
252
|
+
|
219
253
|
Documentation: <https://crowdin.com/page/api/export>
|
220
254
|
|
221
255
|
```ruby
|
@@ -276,7 +310,7 @@ Documentation: <https://crowdin.com/page/api/supported-languages>
|
|
276
310
|
Tested with the following Ruby versions:
|
277
311
|
|
278
312
|
- MRI 2.2.1
|
279
|
-
- JRuby 9.0.0.0
|
313
|
+
- JRuby 9.0.0.0
|
280
314
|
|
281
315
|
## Contributing
|
282
316
|
|
data/lib/crowdin-api.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'pp'
|
2
1
|
require 'json'
|
3
2
|
require 'rest-client'
|
4
3
|
|
@@ -70,6 +69,9 @@ module Crowdin
|
|
70
69
|
end
|
71
70
|
|
72
71
|
def request(params, &block)
|
72
|
+
# Returns a query hash with non nil values.
|
73
|
+
params[:query].reject! { |_, value| value.nil? } if params[:query]
|
74
|
+
|
73
75
|
case params[:method]
|
74
76
|
when :post
|
75
77
|
query = @connection.options.merge(params[:query] || {})
|
@@ -84,7 +86,6 @@ module Crowdin
|
|
84
86
|
end
|
85
87
|
|
86
88
|
log.debug("args: #{@response.args}") if log
|
87
|
-
log.debug("body: #{@response.body}") if log
|
88
89
|
|
89
90
|
if @response.headers[:content_disposition]
|
90
91
|
filename = params[:output] || @response.headers[:content_disposition][/attachment; filename="(.+?)"/, 1]
|
@@ -95,6 +96,8 @@ module Crowdin
|
|
95
96
|
return true
|
96
97
|
else
|
97
98
|
doc = JSON.load(@response.body)
|
99
|
+
log.debug("body: #{doc}") if log
|
100
|
+
|
98
101
|
if doc.kind_of?(Hash) && doc['success'] == false
|
99
102
|
code = doc['error']['code']
|
100
103
|
message = doc['error']['message']
|
data/lib/crowdin-api/methods.rb
CHANGED
@@ -18,6 +18,14 @@ module Crowdin
|
|
18
18
|
# * :title - title in Crowdin UI (optional)
|
19
19
|
# * :export_pattern - Resulted file name (optional)
|
20
20
|
#
|
21
|
+
# Optional:
|
22
|
+
# * :branch - a branch name.
|
23
|
+
# If the branch is not exists Crowdin will be return an error:
|
24
|
+
# "error":{
|
25
|
+
# "code":8,
|
26
|
+
# "message":"File was not found"
|
27
|
+
# }
|
28
|
+
#
|
21
29
|
# == Request
|
22
30
|
#
|
23
31
|
# POST https://api.crowdin.com/api/project/{project-identifier}/add-file?key={project-key}
|
@@ -54,6 +62,9 @@ module Crowdin
|
|
54
62
|
# * :title - title in Crowdin UI (optional)
|
55
63
|
# * :export_pattern - Resulted file name (optional)
|
56
64
|
#
|
65
|
+
# Optional:
|
66
|
+
# * :branch - a branch name
|
67
|
+
#
|
57
68
|
# == Request
|
58
69
|
#
|
59
70
|
# POST https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}
|
@@ -89,13 +100,16 @@ module Crowdin
|
|
89
100
|
#
|
90
101
|
# files - Array of files that should be added to Crowdin project.
|
91
102
|
# file is a Hash { :dest, :source }
|
92
|
-
#
|
93
|
-
#
|
103
|
+
# * :dest - file name with path in Crowdin project (required)
|
104
|
+
# * :source - path for uploaded file (required)
|
105
|
+
# language - Target language. With a single call it's possible to upload translations for several
|
106
|
+
# files but only into one of the languages. (required)
|
94
107
|
#
|
95
108
|
# Optional:
|
96
109
|
# * :import_duplicates (default: false)
|
97
110
|
# * :import_eq_suggestions (default: false)
|
98
111
|
# * :auto_approve_imported (default: false)
|
112
|
+
# * :branch - a branch name
|
99
113
|
#
|
100
114
|
# == Request
|
101
115
|
#
|
@@ -120,6 +134,10 @@ module Crowdin
|
|
120
134
|
#
|
121
135
|
# Note: If you would like to download the most recent translations you may want to use export API method before downloading.
|
122
136
|
#
|
137
|
+
# Optional:
|
138
|
+
# * :output - a name of ZIP file with translations
|
139
|
+
# * :branch - a branch name
|
140
|
+
#
|
123
141
|
# == Request
|
124
142
|
#
|
125
143
|
# GET https://api.crowdin.com/api/project/{project-identifier}/download/{package}.zip?key={project-key}
|
@@ -128,7 +146,8 @@ module Crowdin
|
|
128
146
|
request(
|
129
147
|
:method => :get,
|
130
148
|
:path => "/api/project/#{@project_id}/download/#{language}.zip",
|
131
|
-
:output => params
|
149
|
+
:output => params.delete(:output),
|
150
|
+
:query => params,
|
132
151
|
)
|
133
152
|
end
|
134
153
|
|
@@ -167,29 +186,53 @@ module Crowdin
|
|
167
186
|
|
168
187
|
# Add directory to Crowdin project.
|
169
188
|
#
|
189
|
+
# == Parameters
|
190
|
+
#
|
191
|
+
# name - directory name (with path if nested directory should be created). (required)
|
192
|
+
#
|
193
|
+
# Optional:
|
194
|
+
# * :is_branch - create new branch. Valid values - 0, 1. Only when create root directory.
|
195
|
+
# * :branch - a branch name.
|
196
|
+
#
|
170
197
|
# == Request
|
171
198
|
#
|
172
199
|
# POST https://api.crowdin.com/api/project/{project-identifier}/add-directory?key={project-key}
|
173
200
|
#
|
174
|
-
def add_directory(name)
|
201
|
+
def add_directory(name, params = {})
|
202
|
+
params[:name] = name
|
203
|
+
|
175
204
|
request(
|
176
205
|
:method => :post,
|
177
206
|
:path => "/api/project/#{@project_id}/add-directory",
|
178
|
-
:query =>
|
207
|
+
:query => params,
|
179
208
|
)
|
180
209
|
end
|
181
210
|
|
182
211
|
# Delete Crowdin project directory. All nested files and directories will be deleted too.
|
183
212
|
#
|
213
|
+
# == Parameters
|
214
|
+
#
|
215
|
+
# name - Directory path (or just name if the directory is in root) (required)
|
216
|
+
# :branch - a branch name (optional)
|
217
|
+
#
|
218
|
+
# FIXME
|
219
|
+
# When you try to remove the branch directory Crowdin will be return an error:
|
220
|
+
# "error":{
|
221
|
+
# "code":17,
|
222
|
+
# "message":"Specified directory was not found"
|
223
|
+
# }
|
224
|
+
#
|
184
225
|
# == Request
|
185
226
|
#
|
186
227
|
# POST https://api.crowdin.com/api/project/{project-identifier}/delete-directory?key={project-key}
|
187
228
|
#
|
188
|
-
def delete_directory(name)
|
229
|
+
def delete_directory(name, params = {})
|
230
|
+
params[:name] = name
|
231
|
+
|
189
232
|
request(
|
190
233
|
:method => :post,
|
191
234
|
:path => "/api/project/#{@project_id}/delete-directory",
|
192
|
-
:query =>
|
235
|
+
:query => params,
|
193
236
|
)
|
194
237
|
end
|
195
238
|
|
@@ -204,6 +247,7 @@ module Crowdin
|
|
204
247
|
# * :new_name - new directory name (not contain path, name only)
|
205
248
|
# * :title - new directory title to be displayed in Crowdin UI
|
206
249
|
# * :export_pattern - new directory export pattern
|
250
|
+
# * :branch - a branch name
|
207
251
|
#
|
208
252
|
# == Request
|
209
253
|
#
|
@@ -267,14 +311,18 @@ module Crowdin
|
|
267
311
|
# Please note that this method can be invoked only every 30 minutes.
|
268
312
|
# Also API call will be ignored if there were no any changes in project since last export.
|
269
313
|
#
|
314
|
+
# Optional:
|
315
|
+
# * :branch - a branch name
|
316
|
+
#
|
270
317
|
# == Request
|
271
318
|
#
|
272
|
-
#
|
319
|
+
# GET https://api.crowdin.com/api/project/{project-identifier}/export?key={project-key}
|
273
320
|
#
|
274
|
-
def export_translations
|
321
|
+
def export_translations(params = {})
|
275
322
|
request(
|
276
|
-
:method => :
|
323
|
+
:method => :get,
|
277
324
|
:path => "/api/project/#{@project_id}/export",
|
325
|
+
:query => params,
|
278
326
|
)
|
279
327
|
end
|
280
328
|
|
data/lib/crowdin-api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crowdin-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Crowdin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.9'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.9'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
41
69
|
description: Ruby Client for the Crowdin API
|
42
70
|
email:
|
43
71
|
- support@crowdin.net
|
@@ -68,12 +96,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
68
96
|
version: '0'
|
69
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
98
|
requirements:
|
71
|
-
- - "
|
99
|
+
- - ">"
|
72
100
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
101
|
+
version: 1.3.1
|
74
102
|
requirements: []
|
75
103
|
rubyforge_project:
|
76
|
-
rubygems_version: 2.4.
|
104
|
+
rubygems_version: 2.4.8
|
77
105
|
signing_key:
|
78
106
|
specification_version: 4
|
79
107
|
summary: Client library to manage translations on Crowdin
|