lokalise_manager 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +5 -0
- data/lib/lokalise_manager/global_config.rb +7 -1
- data/lib/lokalise_manager/task_definitions/base.rb +4 -1
- data/lib/lokalise_manager/version.rb +1 -1
- data/spec/lib/lokalise_manager/global_config_spec.rb +5 -0
- data/spec/lib/lokalise_manager/task_definitions/base_spec.rb +14 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6dbbda54dc255ed4ec13547b954213e41ab38c90d1520ffe3762d36dc2917f8
|
4
|
+
data.tar.gz: a341a91e4fea6ff76e0de87e5efa9660f5a0c5a7659656fbcfa14600fc4937d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f5f277f431596f70ee52f45186a972dcd507d1be08f6fc71bd04117556ca803efbe3e8b0d6a123ec6f81b959a5a1c99d9aa63a3189a4700a195fb823ca766e2
|
7
|
+
data.tar.gz: c64848ee98ee90cd77507bae719048ac425c60b7f16581b52de6ed6ab2301976487f6999027eab729244c4d3e8b27af1d5d6875c74d8b3d7cbd35112e0ededf1
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.1.0 (25-Oct-21)
|
4
|
+
|
5
|
+
* Add a new option `:use_oauth2_token` which is `false` by default. When enabled, you'll be able to provide a token obtained via [OAuth 2 flow](https://docs.lokalise.com/en/articles/5574713-oauth-2) rather than generated via Lokalise profile. The token should still be provided via the `:api_token` option:
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
importer = LokaliseManager.importer api_token: 'TOKEN_VIA_OAUTH2', project_id: '123.abc', use_oauth2_token: true
|
9
|
+
```
|
10
|
+
|
3
11
|
## 1.0.0 (14-Oct-21)
|
4
12
|
|
5
13
|
* Initial release
|
data/README.md
CHANGED
@@ -87,6 +87,7 @@ Please don't forget that Lokalise API has rate limiting and you cannot send more
|
|
87
87
|
### Common config
|
88
88
|
|
89
89
|
* `api_token` (`string`, required) — Lokalise API token with read/write permissions.
|
90
|
+
* `use_oauth2_token` (`boolean`) — whether you would like to use a token obtained via [OAuth 2 flow](https://docs.lokalise.com/en/articles/5574713-oauth-2). Defaults to `false`.
|
90
91
|
* `project_id` (`string`, required) — Lokalise project ID. You must have import/export permissions in the specified project.
|
91
92
|
* `locales_path` (`string`) — path to the directory with your translation files. Defaults to `"#{Dir.getwd}/locales"`.
|
92
93
|
* `branch` (`string`) — Lokalise project branch to use. Defaults to `""` (no branch is provided).
|
@@ -169,6 +170,10 @@ If your translation files are not in YAML format, you will need to adjust the fo
|
|
169
170
|
* `translations_converter` (`lambda` or `proc`) — converts translations data to a proper format before saving them to a translation file. Defaults to `->(raw_data) { raw_data.to_yaml }`. In the simplest case you may just return the data back, for example `-> (raw_data) { raw_data }`.
|
170
171
|
* `lang_iso_inferer` (`lambda` or `proc`) — infers language ISO code based on the translation file data before uploading it to Lokalise. Defaults to `->(data) { YAML.safe_load(data)&.keys&.first }`.
|
171
172
|
|
173
|
+
### Customizing JSON parser and network adapter
|
174
|
+
|
175
|
+
JSON parser and network adapter utilized by lokalise_manager can be customized as well. Please check [ruby-lokalise-api doc](https://lokalise.github.io/ruby-lokalise-api/additional_info/customization) to learn more.
|
176
|
+
|
172
177
|
## Providing config options
|
173
178
|
|
174
179
|
### Per-client
|
@@ -7,13 +7,19 @@ module LokaliseManager
|
|
7
7
|
attr_writer :import_opts, :import_safe_mode, :export_opts, :locales_path,
|
8
8
|
:file_ext_regexp, :skip_file_export, :branch, :timeouts,
|
9
9
|
:translations_loader, :translations_converter, :lang_iso_inferer,
|
10
|
-
:max_retries_export, :max_retries_import
|
10
|
+
:max_retries_export, :max_retries_import, :use_oauth2_token
|
11
11
|
|
12
12
|
# Main interface to provide configuration options
|
13
13
|
def config
|
14
14
|
yield self
|
15
15
|
end
|
16
16
|
|
17
|
+
# When enabled, will use OAuth 2 Lokalise client and will require to provide a token obtained via OAuth 2 flow
|
18
|
+
# rather than via Lokalise profile
|
19
|
+
def use_oauth2_token
|
20
|
+
@use_oauth2_token || false
|
21
|
+
end
|
22
|
+
|
17
23
|
# Full path to directory with translation files
|
18
24
|
def locales_path
|
19
25
|
@locales_path || "#{Dir.getwd}/locales"
|
@@ -30,7 +30,10 @@ module LokaliseManager
|
|
30
30
|
#
|
31
31
|
# @return [Lokalise::Client]
|
32
32
|
def api_client
|
33
|
-
|
33
|
+
client_opts = [config.api_token, {enable_compression: true}.merge(config.timeouts)]
|
34
|
+
client_method = config.use_oauth2_token ? :oauth_client : :client
|
35
|
+
|
36
|
+
@api_client ||= ::Lokalise.send(client_method, *client_opts)
|
34
37
|
end
|
35
38
|
|
36
39
|
# Resets API client
|
@@ -14,6 +14,11 @@ describe LokaliseManager::GlobalConfig do
|
|
14
14
|
fake_class.project_id = '123.abc'
|
15
15
|
end
|
16
16
|
|
17
|
+
it 'is possible to set use_oauth2_token' do
|
18
|
+
allow(fake_class).to receive(:use_oauth2_token=).with(true)
|
19
|
+
fake_class.use_oauth2_token = true
|
20
|
+
end
|
21
|
+
|
17
22
|
it 'is possible to set file_ext_regexp' do
|
18
23
|
allow(fake_class).to receive(:file_ext_regexp=).with(Regexp.new('.*'))
|
19
24
|
fake_class.file_ext_regexp = Regexp.new('.*')
|
@@ -94,9 +94,20 @@ describe LokaliseManager::TaskDefinitions::Base do
|
|
94
94
|
timeout: 500
|
95
95
|
})
|
96
96
|
|
97
|
-
|
98
|
-
expect(
|
99
|
-
expect(
|
97
|
+
client = described_object.api_client
|
98
|
+
expect(client).to be_an_instance_of(Lokalise::Client)
|
99
|
+
expect(client).not_to be_an_instance_of(Lokalise::OAuthClient)
|
100
|
+
expect(client.open_timeout).to eq(100)
|
101
|
+
expect(client.timeout).to eq(500)
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'uses .oauth_client when the use_oauth2_token is true' do
|
105
|
+
allow(described_object.config).to receive(:use_oauth2_token).and_return(true)
|
106
|
+
|
107
|
+
client = described_object.api_client
|
108
|
+
|
109
|
+
expect(client).to be_an_instance_of(Lokalise::OAuthClient)
|
110
|
+
expect(client).not_to be_an_instance_of(Lokalise::Client)
|
100
111
|
end
|
101
112
|
end
|
102
113
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lokalise_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Bodrov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-lokalise-api
|