ruby-lokalise-api 7.0.0 → 7.1.1
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/LICENSE +1 -1
- data/README.md +0 -1
- data/lib/ruby_lokalise_api/base_client.rb +49 -0
- data/lib/ruby_lokalise_api/client.rb +4 -37
- data/lib/ruby_lokalise_api/data/attributes.yml +2 -0
- data/lib/ruby_lokalise_api/oauth2/auth.rb +4 -4
- data/lib/ruby_lokalise_api/resources/jwt.rb +13 -0
- data/lib/ruby_lokalise_api/rest/jwt.rb +15 -0
- data/lib/ruby_lokalise_api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +2 -3
- metadata +16 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f195975b35421d2d4be87df71c5167fe34fc7143b580a1b79368a30d386e5cf
|
4
|
+
data.tar.gz: f461a8e2069ad81f3dd618cfa7f46641bdd020dbf893eb639e1cb04a83e35221
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01d5ef8819e3cdba05c651049a7c8fb4876d0e1b59b6fc3a87442ef3ec178c2ca2799ebbf145a94cba9cae37faac9fa0f8e4e6297023e88fab6aa5df19d6f627
|
7
|
+
data.tar.gz: 57bd17227380725a5b0e7898f23714584e354ace578b7e09f9c7fb87ce973594d07954d6cfcad3f42fc4a28b1d07ce2e9c681570f8fbc4f0b5d675bea75a1e6a
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|

|
4
4
|

|
5
|
-
[](https://codecov.io/gh/lokalise/ruby-lokalise-api)
|
6
5
|

|
7
6
|
|
8
7
|
Official opinionated Ruby interface for the [Lokalise API](https://developers.lokalise.com/reference/lokalise-rest-api) that represents returned data as Ruby objects.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyLokaliseApi
|
4
|
+
class BaseClient
|
5
|
+
attr_reader :token, :token_header
|
6
|
+
attr_accessor :timeout, :open_timeout
|
7
|
+
|
8
|
+
def initialize(token, params = {})
|
9
|
+
@token = token
|
10
|
+
@timeout = params.fetch(:timeout, nil)
|
11
|
+
@open_timeout = params.fetch(:open_timeout, nil)
|
12
|
+
@token_header = ''
|
13
|
+
end
|
14
|
+
|
15
|
+
# rubocop:disable Metrics/ParameterLists
|
16
|
+
# Constructs request to perform the specified action
|
17
|
+
# @param klass The actual class to call the method upon
|
18
|
+
# @param method [Symbol] The method to call (:new, :update, :create etc)
|
19
|
+
# @param endpoint_ids [Array, Hash] IDs that are used to generate the proper path to the endpoint
|
20
|
+
# @param params [Array, Hash] Request parameters
|
21
|
+
# @param object_key [String, Symbol] Key that should be used to wrap parameters into
|
22
|
+
# @param initial_ids [Array] IDs that should be used to generate base endpoint path.
|
23
|
+
# The base path is used for method chaining
|
24
|
+
def construct_request(klass, method, endpoint_ids, params = {}, object_key = nil, initial_ids = nil)
|
25
|
+
path = klass.endpoint(*endpoint_ids)
|
26
|
+
formatted_params = format_params(params, object_key)
|
27
|
+
formatted_params[:_initial_path] = klass.endpoint(*initial_ids) if initial_ids
|
28
|
+
klass.send method, self, path, formatted_params
|
29
|
+
end
|
30
|
+
# rubocop:enable Metrics/ParameterLists
|
31
|
+
|
32
|
+
# Converts `params` to hash with arrays under the `object_key` key.
|
33
|
+
# Used in bulk operations
|
34
|
+
#
|
35
|
+
# @return [Hash]
|
36
|
+
def format_params(params, object_key)
|
37
|
+
return params unless object_key
|
38
|
+
|
39
|
+
params = [params] unless params.is_a?(Array)
|
40
|
+
{object_key => params}
|
41
|
+
end
|
42
|
+
|
43
|
+
def base_url; end
|
44
|
+
|
45
|
+
def compression?; end
|
46
|
+
|
47
|
+
alias c_r construct_request
|
48
|
+
end
|
49
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module RubyLokaliseApi
|
4
|
-
class Client
|
4
|
+
class Client < BaseClient
|
5
5
|
include RubyLokaliseApi::Rest::Branches
|
6
6
|
include RubyLokaliseApi::Rest::Comments
|
7
7
|
include RubyLokaliseApi::Rest::Contributors
|
8
8
|
include RubyLokaliseApi::Rest::CustomTranslationStatuses
|
9
9
|
include RubyLokaliseApi::Rest::Files
|
10
|
+
include RubyLokaliseApi::Rest::Jwt
|
10
11
|
include RubyLokaliseApi::Rest::Keys
|
11
12
|
include RubyLokaliseApi::Rest::Languages
|
12
13
|
include RubyLokaliseApi::Rest::Orders
|
@@ -25,42 +26,10 @@ module RubyLokaliseApi
|
|
25
26
|
include RubyLokaliseApi::Rest::Translations
|
26
27
|
include RubyLokaliseApi::Rest::Webhooks
|
27
28
|
|
28
|
-
attr_reader :token, :token_header
|
29
|
-
attr_accessor :timeout, :open_timeout
|
30
|
-
|
31
29
|
def initialize(token, params = {})
|
32
|
-
|
33
|
-
@timeout = params.fetch(:timeout, nil)
|
34
|
-
@open_timeout = params.fetch(:open_timeout, nil)
|
35
|
-
@token_header = 'x-api-token'
|
36
|
-
end
|
37
|
-
|
38
|
-
# rubocop:disable Metrics/ParameterLists
|
39
|
-
# Constructs request to perform the specified action
|
40
|
-
# @param klass The actual class to call the method upon
|
41
|
-
# @param method [Symbol] The method to call (:new, :update, :create etc)
|
42
|
-
# @param endpoint_ids [Array, Hash] IDs that are used to generate the proper path to the endpoint
|
43
|
-
# @param params [Array, Hash] Request parameters
|
44
|
-
# @param object_key [String, Symbol] Key that should be used to wrap parameters into
|
45
|
-
# @param initial_ids [Array] IDs that should be used to generate base endpoint path.
|
46
|
-
# The base path is used for method chaining
|
47
|
-
def construct_request(klass, method, endpoint_ids, params = {}, object_key = nil, initial_ids = nil)
|
48
|
-
path = klass.endpoint(*endpoint_ids)
|
49
|
-
formatted_params = format_params(params, object_key)
|
50
|
-
formatted_params[:_initial_path] = klass.endpoint(*initial_ids) if initial_ids
|
51
|
-
klass.send method, self, path, formatted_params
|
52
|
-
end
|
53
|
-
# rubocop:enable Metrics/ParameterLists
|
54
|
-
|
55
|
-
# Converts `params` to hash with arrays under the `object_key` key.
|
56
|
-
# Used in bulk operations
|
57
|
-
#
|
58
|
-
# @return [Hash]
|
59
|
-
def format_params(params, object_key)
|
60
|
-
return params unless object_key
|
30
|
+
super(token, params)
|
61
31
|
|
62
|
-
|
63
|
-
{object_key => params}
|
32
|
+
@token_header = 'x-api-token'
|
64
33
|
end
|
65
34
|
|
66
35
|
def base_url
|
@@ -70,7 +39,5 @@ module RubyLokaliseApi
|
|
70
39
|
def compression?
|
71
40
|
true
|
72
41
|
end
|
73
|
-
|
74
|
-
alias c_r construct_request
|
75
42
|
end
|
76
43
|
end
|
@@ -14,10 +14,6 @@ module RubyLokaliseApi
|
|
14
14
|
@open_timeout = params[:open_timeout]
|
15
15
|
end
|
16
16
|
|
17
|
-
def base_url
|
18
|
-
URI('https://app.lokalise.com/oauth2/')
|
19
|
-
end
|
20
|
-
|
21
17
|
def auth(scope:, redirect_uri: nil, state: nil)
|
22
18
|
scope = scope.join(' ') if scope.is_a?(Array)
|
23
19
|
|
@@ -49,6 +45,10 @@ module RubyLokaliseApi
|
|
49
45
|
RubyLokaliseApi::OAuth2::Refresh.new post('token', self, params)
|
50
46
|
end
|
51
47
|
|
48
|
+
def base_url
|
49
|
+
URI('https://app.lokalise.com/oauth2/')
|
50
|
+
end
|
51
|
+
|
52
52
|
def compression?
|
53
53
|
false
|
54
54
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyLokaliseApi
|
4
|
+
module Rest
|
5
|
+
module Jwt
|
6
|
+
# Returns a JWT that can be used to work with OTA
|
7
|
+
#
|
8
|
+
# @see https://developers.lokalise.com/reference/get-ota-jwt
|
9
|
+
# @return [RubyLokaliseApi::Resources::Jwt]
|
10
|
+
def jwt
|
11
|
+
c_r RubyLokaliseApi::Resources::Jwt, :find, nil, {}
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/ruby-lokalise-api.gemspec
CHANGED
@@ -23,11 +23,10 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_dependency 'addressable', '~> 2.5'
|
25
25
|
spec.add_dependency 'faraday', '~> 2.0'
|
26
|
-
spec.add_dependency 'faraday-gzip', '
|
26
|
+
spec.add_dependency 'faraday-gzip', '>= 0.1', '< 2.0'
|
27
27
|
spec.add_dependency 'json', '~> 2'
|
28
28
|
spec.add_dependency 'zeitwerk', '~> 2.4'
|
29
29
|
|
30
|
-
spec.add_development_dependency 'codecov', '~> 0.1'
|
31
30
|
spec.add_development_dependency 'dotenv', '~> 2.5'
|
32
31
|
spec.add_development_dependency 'oj', '~> 3.10'
|
33
32
|
spec.add_development_dependency 'rake', '~> 13.0'
|
@@ -36,7 +35,7 @@ Gem::Specification.new do |spec|
|
|
36
35
|
spec.add_development_dependency 'rubocop-performance', '~> 1.5'
|
37
36
|
spec.add_development_dependency 'rubocop-rake', '~> 0.6'
|
38
37
|
spec.add_development_dependency 'rubocop-rspec', '~> 2.0'
|
39
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
38
|
+
spec.add_development_dependency 'simplecov', '~> 0.21'
|
40
39
|
spec.add_development_dependency 'vcr', '~> 6.0'
|
41
40
|
spec.add_development_dependency 'webmock', '~> 3.14'
|
42
41
|
spec.metadata = {
|
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: 7.
|
4
|
+
version: 7.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Krukowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -42,16 +42,22 @@ dependencies:
|
|
42
42
|
name: faraday-gzip
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0.1'
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '2.0'
|
48
51
|
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
|
-
- - "
|
55
|
+
- - ">="
|
53
56
|
- !ruby/object:Gem::Version
|
54
57
|
version: '0.1'
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '2.0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: json
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +86,6 @@ dependencies:
|
|
80
86
|
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
88
|
version: '2.4'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: codecov
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0.1'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0.1'
|
97
89
|
- !ruby/object:Gem::Dependency
|
98
90
|
name: dotenv
|
99
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,14 +204,14 @@ dependencies:
|
|
212
204
|
requirements:
|
213
205
|
- - "~>"
|
214
206
|
- !ruby/object:Gem::Version
|
215
|
-
version: '0.
|
207
|
+
version: '0.21'
|
216
208
|
type: :development
|
217
209
|
prerelease: false
|
218
210
|
version_requirements: !ruby/object:Gem::Requirement
|
219
211
|
requirements:
|
220
212
|
- - "~>"
|
221
213
|
- !ruby/object:Gem::Version
|
222
|
-
version: '0.
|
214
|
+
version: '0.21'
|
223
215
|
- !ruby/object:Gem::Dependency
|
224
216
|
name: vcr
|
225
217
|
requirement: !ruby/object:Gem::Requirement
|
@@ -266,6 +258,7 @@ files:
|
|
266
258
|
- README.md
|
267
259
|
- Rakefile
|
268
260
|
- lib/ruby_lokalise_api.rb
|
261
|
+
- lib/ruby_lokalise_api/base_client.rb
|
269
262
|
- lib/ruby_lokalise_api/base_request.rb
|
270
263
|
- lib/ruby_lokalise_api/client.rb
|
271
264
|
- lib/ruby_lokalise_api/collections/base.rb
|
@@ -306,6 +299,7 @@ files:
|
|
306
299
|
- lib/ruby_lokalise_api/resources/contributor.rb
|
307
300
|
- lib/ruby_lokalise_api/resources/custom_translation_status.rb
|
308
301
|
- lib/ruby_lokalise_api/resources/file.rb
|
302
|
+
- lib/ruby_lokalise_api/resources/jwt.rb
|
309
303
|
- lib/ruby_lokalise_api/resources/key.rb
|
310
304
|
- lib/ruby_lokalise_api/resources/key_comment.rb
|
311
305
|
- lib/ruby_lokalise_api/resources/order.rb
|
@@ -331,6 +325,7 @@ files:
|
|
331
325
|
- lib/ruby_lokalise_api/rest/contributors.rb
|
332
326
|
- lib/ruby_lokalise_api/rest/custom_translation_statuses.rb
|
333
327
|
- lib/ruby_lokalise_api/rest/files.rb
|
328
|
+
- lib/ruby_lokalise_api/rest/jwt.rb
|
334
329
|
- lib/ruby_lokalise_api/rest/keys.rb
|
335
330
|
- lib/ruby_lokalise_api/rest/languages.rb
|
336
331
|
- lib/ruby_lokalise_api/rest/orders.rb
|
@@ -373,7 +368,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
373
368
|
- !ruby/object:Gem::Version
|
374
369
|
version: '0'
|
375
370
|
requirements: []
|
376
|
-
rubygems_version: 3.
|
371
|
+
rubygems_version: 3.4.2
|
377
372
|
signing_key:
|
378
373
|
specification_version: 4
|
379
374
|
summary: Ruby interface to the Lokalise API
|