ruby-lokalise-api 4.2.0 → 4.3.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.
- checksums.yaml +4 -4
- data/lib/ruby-lokalise-api.rb +1 -0
- data/lib/ruby-lokalise-api/client.rb +2 -1
- data/lib/ruby-lokalise-api/connection.rb +10 -4
- data/lib/ruby-lokalise-api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +1 -0
- data/spec/lib/ruby-lokalise-api/connection_spec.rb +39 -1
- data/spec/lib/ruby-lokalise-api_spec.rb +6 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d4e828a877250b7e76e2134f9d9bbc8e4749519d0adfcad12fbfa25f65b52a9
|
4
|
+
data.tar.gz: 4d8d9236940e3fdd0796b92b09544eab9565c9a41c2e16d589a8f30c07628e4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1d6d1c7f192cd70a60c2f07b4fb70c16e9b7c3bfa1a3c0834eed9569c59f7dca38d042187a5a8b99122905ea0eb3adf7b574f8f41d85763d08b0d50ff03305e
|
7
|
+
data.tar.gz: 13dfc2c81e9057dd8ece7513f74d3d0d793040fa9755470f7167f1dd1724d93275a7c75f64ecabfc0da1d43c3ec86e5b9eca73ea87ba191188643b330899b282
|
data/lib/ruby-lokalise-api.rb
CHANGED
@@ -24,12 +24,13 @@ require 'ruby-lokalise-api/rest/webhooks'
|
|
24
24
|
module Lokalise
|
25
25
|
class Client
|
26
26
|
attr_reader :token
|
27
|
-
attr_accessor :timeout, :open_timeout
|
27
|
+
attr_accessor :timeout, :open_timeout, :enable_compression
|
28
28
|
|
29
29
|
def initialize(token, params = {})
|
30
30
|
@token = token
|
31
31
|
@timeout = params.fetch(:timeout, nil)
|
32
32
|
@open_timeout = params.fetch(:open_timeout, nil)
|
33
|
+
@enable_compression = params.fetch(:enable_compression, false)
|
33
34
|
end
|
34
35
|
|
35
36
|
# rubocop:disable Metrics/ParameterLists
|
@@ -5,7 +5,16 @@ module Lokalise
|
|
5
5
|
BASE_URL = 'https://api.lokalise.com/api2/'
|
6
6
|
|
7
7
|
def connection(client)
|
8
|
-
options
|
8
|
+
Faraday.new(options(client), request_params_for(client)) do |faraday|
|
9
|
+
faraday.use(:gzip) if client.enable_compression
|
10
|
+
faraday.adapter Faraday.default_adapter
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def options(client)
|
17
|
+
{
|
9
18
|
headers: {
|
10
19
|
accept: 'application/json',
|
11
20
|
user_agent: "ruby-lokalise-api gem/#{Lokalise::VERSION}",
|
@@ -13,11 +22,8 @@ module Lokalise
|
|
13
22
|
},
|
14
23
|
url: BASE_URL
|
15
24
|
}
|
16
|
-
Faraday.new(options, request_params_for(client)) { |faraday| faraday.adapter Faraday.default_adapter }
|
17
25
|
end
|
18
26
|
|
19
|
-
private
|
20
|
-
|
21
27
|
# Allows to customize request params per-client
|
22
28
|
def request_params_for(client)
|
23
29
|
{request: {timeout: client.timeout, open_timeout: client.open_timeout}}
|
data/ruby-lokalise-api.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.add_dependency 'addressable', '~> 2.5'
|
26
26
|
spec.add_dependency 'faraday', '~> 1.0'
|
27
|
+
spec.add_dependency 'faraday_middleware', '~> 1.0'
|
27
28
|
spec.add_dependency 'json', '>= 1.8.0'
|
28
29
|
|
29
30
|
spec.add_development_dependency 'codecov', '~> 0.1'
|
@@ -3,6 +3,9 @@
|
|
3
3
|
RSpec.describe Lokalise::Connection do
|
4
4
|
include described_class
|
5
5
|
|
6
|
+
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
7
|
+
let(:key_id) { 44_596_059 }
|
8
|
+
|
6
9
|
before { Lokalise.reset_client! }
|
7
10
|
|
8
11
|
after do
|
@@ -10,11 +13,12 @@ RSpec.describe Lokalise::Connection do
|
|
10
13
|
Faraday.default_adapter = :net_http
|
11
14
|
end
|
12
15
|
|
13
|
-
it 'timeouts should not be set by default but the token must be present' do
|
16
|
+
it 'timeouts and compression should not be set by default but the token must be present' do
|
14
17
|
conn = connection test_client
|
15
18
|
expect(conn.options.timeout).to be_nil
|
16
19
|
expect(conn.options.open_timeout).to be_nil
|
17
20
|
expect(conn.headers['X-api-token']).to eq(test_client.token)
|
21
|
+
expect(conn.builder.handlers).not_to include(FaradayMiddleware::Gzip)
|
18
22
|
end
|
19
23
|
|
20
24
|
it 'allows to customize timeouts' do
|
@@ -42,4 +46,38 @@ RSpec.describe Lokalise::Connection do
|
|
42
46
|
expect(another_conn.builder.adapter).to eq(Faraday::Adapter::Excon)
|
43
47
|
expect(conn.builder.adapter).to eq(Faraday::Adapter::NetHttp)
|
44
48
|
end
|
49
|
+
|
50
|
+
it 'allows to customize compression' do
|
51
|
+
custom_client = Lokalise.client(ENV['LOKALISE_API_TOKEN'], enable_compression: true)
|
52
|
+
conn = connection custom_client
|
53
|
+
expect(conn.headers['X-api-token']).to eq(custom_client.token)
|
54
|
+
expect(conn.builder.handlers).to include(FaradayMiddleware::Gzip)
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'is possible to enable gzip compression' do
|
58
|
+
gzip_client = Lokalise.client(ENV['LOKALISE_API_TOKEN'], enable_compression: true)
|
59
|
+
keys = VCR.use_cassette('all_keys_gzip') do
|
60
|
+
gzip_client.keys project_id
|
61
|
+
end.collection
|
62
|
+
|
63
|
+
expect(keys.first.key_id).to eq(key_id)
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'is possible to disable gzip compression' do
|
67
|
+
no_gzip_client = Lokalise.client(ENV['LOKALISE_API_TOKEN'], enable_compression: false)
|
68
|
+
keys = VCR.use_cassette('all_keys_no_gzip') do
|
69
|
+
no_gzip_client.keys project_id
|
70
|
+
end.collection
|
71
|
+
|
72
|
+
expect(keys.first.key_id).to eq(key_id)
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'gzip compression is off by default' do
|
76
|
+
default_gzip_client = Lokalise.client(ENV['LOKALISE_API_TOKEN'])
|
77
|
+
keys = VCR.use_cassette('all_keys_default_gzip') do
|
78
|
+
default_gzip_client.keys project_id
|
79
|
+
end.collection
|
80
|
+
|
81
|
+
expect(keys.first.key_id).to eq(key_id)
|
82
|
+
end
|
45
83
|
end
|
@@ -6,6 +6,7 @@ RSpec.describe Lokalise do
|
|
6
6
|
expect(test_client.token).to eq(ENV['LOKALISE_API_TOKEN'])
|
7
7
|
expect(test_client.timeout).to be_nil
|
8
8
|
expect(test_client.open_timeout).to be_nil
|
9
|
+
expect(test_client.enable_compression).to be false
|
9
10
|
end
|
10
11
|
|
11
12
|
specify '.reset_client!' do
|
@@ -29,5 +30,10 @@ RSpec.describe Lokalise do
|
|
29
30
|
custom_client = described_class.client(ENV['LOKALISE_API_TOKEN'], open_timeout: 100)
|
30
31
|
expect(custom_client.open_timeout).to eq(100)
|
31
32
|
end
|
33
|
+
|
34
|
+
it 'is possible to customize compression' do
|
35
|
+
custom_client = described_class.client(ENV['LOKALISE_API_TOKEN'], enable_compression: true)
|
36
|
+
expect(custom_client.enable_compression).to be true
|
37
|
+
end
|
32
38
|
end
|
33
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lokalise-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.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-
|
11
|
+
date: 2021-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: faraday_middleware
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: json
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -334,7 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
348
|
- !ruby/object:Gem::Version
|
335
349
|
version: '0'
|
336
350
|
requirements: []
|
337
|
-
rubygems_version: 3.2.
|
351
|
+
rubygems_version: 3.2.23
|
338
352
|
signing_key:
|
339
353
|
specification_version: 4
|
340
354
|
summary: Ruby interface to the Lokalise API
|