ruby-lokalise-api 8.0.0.rc1 → 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.
- checksums.yaml +4 -4
- data/lib/ruby_lokalise_api/concerns/attrs_loadable.rb +1 -0
- data/lib/ruby_lokalise_api/connection.rb +0 -1
- data/lib/ruby_lokalise_api/oauth2/auth.rb +15 -0
- data/lib/ruby_lokalise_api/utils/classes.rb +4 -0
- data/lib/ruby_lokalise_api/utils/keys.rb +4 -0
- data/lib/ruby_lokalise_api/utils/loaders.rb +3 -0
- data/lib/ruby_lokalise_api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +1 -1
- metadata +7 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95932448d2e531abc5dc2f30a4b7f1052fa9ba7b37a80e57a46117ac7102c453
|
4
|
+
data.tar.gz: d5101a2713268265021177c3bcb1eaa1adcfaaa2afe605d87747d55a5c4a6ec0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64d290aa2c9844f3e8db8099968104845f7f7b7a52c96843b7f400124819031c3021acec02a318004079548b2666e3253cae845d447825cb5acf04d7cee43234
|
7
|
+
data.tar.gz: f2790492035aa26cd353372008fe8b4d41cecd47382700ec339e57d443cb5e637be24dc299ea7a1c9898f5c2446722a5709e79e684c081b1ee730d595788fb5e
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module OAuth2
|
5
|
+
# This class defines OAuth2 flow
|
5
6
|
class Auth
|
6
7
|
attr_reader :client_id, :client_secret, :timeout, :open_timeout
|
7
8
|
|
@@ -14,10 +15,17 @@ module RubyLokaliseApi
|
|
14
15
|
@open_timeout = params[:open_timeout]
|
15
16
|
end
|
16
17
|
|
18
|
+
# Returns OAuth2 endpoint URI
|
17
19
|
def oauth2_endpoint
|
18
20
|
self.class.const_get(:OAUTH2_ENDPOINT)
|
19
21
|
end
|
20
22
|
|
23
|
+
# Builds an OAuth2 link that customers have to visit
|
24
|
+
# in order to obtain a special code
|
25
|
+
# @return [String]
|
26
|
+
# @param scope [Array, String]
|
27
|
+
# @param redirect_uri [String]
|
28
|
+
# @param state [String]
|
21
29
|
def auth(scope:, redirect_uri: nil, state: nil)
|
22
30
|
get_params = {
|
23
31
|
client_id: client_id,
|
@@ -29,6 +37,10 @@ module RubyLokaliseApi
|
|
29
37
|
oauth2_endpoint.new(self, query: 'auth', get: get_params).full_uri
|
30
38
|
end
|
31
39
|
|
40
|
+
# Requests OAuth2 access token. Requires OAuth2 code obtained
|
41
|
+
# using the `.auth` method
|
42
|
+
# @return [RubyLokaliseApi::Resources::OAuth2Token]
|
43
|
+
# @param code [String]
|
32
44
|
def token(code)
|
33
45
|
endpoint = oauth2_endpoint.new(
|
34
46
|
self,
|
@@ -42,6 +54,9 @@ module RubyLokaliseApi
|
|
42
54
|
RubyLokaliseApi::Resources::OAuth2Token.new endpoint.do_post
|
43
55
|
end
|
44
56
|
|
57
|
+
# Refreshes expired OAuth2 access token.
|
58
|
+
# @return [RubyLokaliseApi::Resources::OAuth2RefreshedToken]
|
59
|
+
# @param refresh_token [String]
|
45
60
|
def refresh(refresh_token)
|
46
61
|
endpoint = oauth2_endpoint.new(
|
47
62
|
self,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module RubyLokaliseApi
|
4
|
+
# Basic utilitiy methods
|
4
5
|
module Utils
|
5
6
|
module Classes
|
6
7
|
refine Object do
|
@@ -9,10 +10,13 @@ module RubyLokaliseApi
|
|
9
10
|
name.split('::').last
|
10
11
|
end
|
11
12
|
|
13
|
+
# Converts object to array unless it is already an array
|
12
14
|
def to_array
|
13
15
|
is_a?(Array) ? self : [self]
|
14
16
|
end
|
15
17
|
|
18
|
+
# Converts object to array and then places this array
|
19
|
+
# inside hash under the provided key
|
16
20
|
def to_array_obj(key)
|
17
21
|
return self if is_a?(Hash) && (key?(key) || key?(key.to_s))
|
18
22
|
|
@@ -5,6 +5,8 @@ module RubyLokaliseApi
|
|
5
5
|
module Keys
|
6
6
|
using RubyLokaliseApi::Utils::Strings
|
7
7
|
|
8
|
+
# Reads DATA_KEY for resources. DATA_KEY specifies the name of the key
|
9
|
+
# in the API response that contains the actual data
|
8
10
|
def data_key_for(klass:)
|
9
11
|
key = if Module.const_defined? "RubyLokaliseApi::Resources::#{klass}::DATA_KEY"
|
10
12
|
Module.const_get "RubyLokaliseApi::Resources::#{klass}::DATA_KEY"
|
@@ -15,6 +17,8 @@ module RubyLokaliseApi
|
|
15
17
|
key.snakecase
|
16
18
|
end
|
17
19
|
|
20
|
+
# Reads DATA_KEY for collections. DATA_KEY specifies the name of the key
|
21
|
+
# in the API response that contains the actual data
|
18
22
|
def collection_key_for(klass:)
|
19
23
|
key = if Module.const_defined?("RubyLokaliseApi::Collections::#{klass}::DATA_KEY")
|
20
24
|
Module.const_get("RubyLokaliseApi::Collections::#{klass}::DATA_KEY")
|
@@ -5,16 +5,19 @@ module RubyLokaliseApi
|
|
5
5
|
module Loaders
|
6
6
|
private
|
7
7
|
|
8
|
+
# Instantiates an endpoint
|
8
9
|
def endpoint(name:, client: self, params: {})
|
9
10
|
klass = RubyLokaliseApi.const_get "Endpoints::#{name}Endpoint"
|
10
11
|
klass.new client, params
|
11
12
|
end
|
12
13
|
|
14
|
+
# Instantiates a resource
|
13
15
|
def resource(name, data)
|
14
16
|
klass = RubyLokaliseApi.const_get "Resources::#{name}"
|
15
17
|
klass.new data
|
16
18
|
end
|
17
19
|
|
20
|
+
# Instantiates a collection
|
18
21
|
def collection(name, data)
|
19
22
|
klass = RubyLokaliseApi.const_get "Collections::#{name}"
|
20
23
|
klass.new data
|
data/ruby-lokalise-api.gemspec
CHANGED
@@ -23,7 +23,7 @@ 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', '~> 2.0'
|
27
27
|
spec.add_dependency 'json', '~> 2'
|
28
28
|
spec.add_dependency 'zeitwerk', '~> 2.4'
|
29
29
|
|
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: 8.0.0
|
4
|
+
version: 8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Krukowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -42,20 +42,14 @@ dependencies:
|
|
42
42
|
name: faraday-gzip
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.1'
|
48
|
-
- - "<"
|
45
|
+
- - "~>"
|
49
46
|
- !ruby/object:Gem::Version
|
50
47
|
version: '2.0'
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
|
-
- - "
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '0.1'
|
58
|
-
- - "<"
|
52
|
+
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
54
|
version: '2.0'
|
61
55
|
- !ruby/object:Gem::Dependency
|
@@ -399,11 +393,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
399
393
|
version: '2.7'
|
400
394
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
401
395
|
requirements:
|
402
|
-
- - "
|
396
|
+
- - ">="
|
403
397
|
- !ruby/object:Gem::Version
|
404
|
-
version:
|
398
|
+
version: '0'
|
405
399
|
requirements: []
|
406
|
-
rubygems_version: 3.4.
|
400
|
+
rubygems_version: 3.4.17
|
407
401
|
signing_key:
|
408
402
|
specification_version: 4
|
409
403
|
summary: Ruby interface to the Lokalise API
|