setsuzoku 0.15.7 → 0.16.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/.ruby-version +1 -0
- data/Gemfile.lock +36 -26
- data/lib/setsuzoku/service/web_service/api_strategies/rest_strategy.rb +52 -82
- data/lib/setsuzoku/version.rb +2 -2
- data/setsuzoku.gemspec +2 -3
- metadata +10 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dc4ead33dfa830fdd30204de17dcf9f1d91e5b46b2257ea7a9f22a5143830fd6
|
|
4
|
+
data.tar.gz: f86454d64fceaa197de41e01b48ec3c34ea27f1d5357b136fd963560337a70c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ce75a4ff7eecb78d7fa98a8b944bf34012e86b0a811247aca685a9cb3efd24cb3b8db3b051fdc0c23edcc69f13ac3b4fbce386872672744b94d1be4586dbeb6c
|
|
7
|
+
data.tar.gz: 7e444ac7d3dd84f4d933e6c3e7cc8f5d56ce1ae0c0172f071dac80e6b43cf7354d8e1d9b629465524acaae724cbeaefa1bba66bed2230bfcc4797d07fb381e87
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.2.3
|
data/Gemfile.lock
CHANGED
|
@@ -1,40 +1,49 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
setsuzoku (0.
|
|
5
|
-
activesupport (>=
|
|
4
|
+
setsuzoku (0.16.0)
|
|
5
|
+
activesupport (>= 8.0, < 9)
|
|
6
6
|
faraday (>= 2.7.10, < 3.0)
|
|
7
|
-
faraday-multipart (>= 1.0.4, < 2.0)
|
|
8
7
|
nokogiri (>= 1.10, < 2.0)
|
|
9
8
|
sorbet-runtime (>= 0.5, < 1.0)
|
|
10
9
|
|
|
11
10
|
GEM
|
|
12
11
|
remote: https://rubygems.org/
|
|
13
12
|
specs:
|
|
14
|
-
activesupport (
|
|
15
|
-
|
|
13
|
+
activesupport (8.1.2)
|
|
14
|
+
base64
|
|
15
|
+
bigdecimal
|
|
16
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
17
|
+
connection_pool (>= 2.2.5)
|
|
18
|
+
drb
|
|
16
19
|
i18n (>= 1.6, < 2)
|
|
20
|
+
json
|
|
21
|
+
logger (>= 1.4.2)
|
|
17
22
|
minitest (>= 5.1)
|
|
18
|
-
|
|
19
|
-
|
|
23
|
+
securerandom (>= 0.3)
|
|
24
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
25
|
+
uri (>= 0.13.1)
|
|
20
26
|
addressable (2.8.6)
|
|
21
27
|
public_suffix (>= 2.0.2, < 6.0)
|
|
22
|
-
|
|
28
|
+
base64 (0.3.0)
|
|
29
|
+
bigdecimal (4.0.1)
|
|
30
|
+
concurrent-ruby (1.3.6)
|
|
31
|
+
connection_pool (3.0.2)
|
|
23
32
|
crack (0.4.5)
|
|
24
33
|
rexml
|
|
25
|
-
diff-lcs (1.
|
|
34
|
+
diff-lcs (1.6.2)
|
|
35
|
+
drb (2.2.3)
|
|
26
36
|
faraday (2.7.10)
|
|
27
37
|
faraday-net_http (>= 2.0, < 3.1)
|
|
28
38
|
ruby2_keywords (>= 0.0.4)
|
|
29
|
-
faraday-multipart (1.0.4)
|
|
30
|
-
multipart-post (~> 2)
|
|
31
39
|
faraday-net_http (3.0.2)
|
|
32
40
|
hashdiff (1.0.1)
|
|
33
41
|
i18n (1.14.1)
|
|
34
42
|
concurrent-ruby (~> 1.0)
|
|
35
|
-
|
|
43
|
+
json (2.18.1)
|
|
44
|
+
logger (1.7.0)
|
|
45
|
+
mini_portile2 (2.8.9)
|
|
36
46
|
minitest (5.19.0)
|
|
37
|
-
multipart-post (2.4.0)
|
|
38
47
|
nokogiri (1.15.4)
|
|
39
48
|
mini_portile2 (~> 2.8.2)
|
|
40
49
|
racc (~> 1.4)
|
|
@@ -46,20 +55,21 @@ GEM
|
|
|
46
55
|
racc (1.7.1)
|
|
47
56
|
rake (13.1.0)
|
|
48
57
|
rexml (3.2.6)
|
|
49
|
-
rspec (3.
|
|
50
|
-
rspec-core (~> 3.
|
|
51
|
-
rspec-expectations (~> 3.
|
|
52
|
-
rspec-mocks (~> 3.
|
|
53
|
-
rspec-core (3.
|
|
54
|
-
rspec-support (~> 3.
|
|
55
|
-
rspec-expectations (3.
|
|
58
|
+
rspec (3.13.0)
|
|
59
|
+
rspec-core (~> 3.13.0)
|
|
60
|
+
rspec-expectations (~> 3.13.0)
|
|
61
|
+
rspec-mocks (~> 3.13.0)
|
|
62
|
+
rspec-core (3.13.6)
|
|
63
|
+
rspec-support (~> 3.13.0)
|
|
64
|
+
rspec-expectations (3.13.5)
|
|
56
65
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
57
|
-
rspec-support (~> 3.
|
|
58
|
-
rspec-mocks (3.
|
|
66
|
+
rspec-support (~> 3.13.0)
|
|
67
|
+
rspec-mocks (3.13.7)
|
|
59
68
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
60
|
-
rspec-support (~> 3.
|
|
61
|
-
rspec-support (3.
|
|
69
|
+
rspec-support (~> 3.13.0)
|
|
70
|
+
rspec-support (3.13.7)
|
|
62
71
|
ruby2_keywords (0.0.5)
|
|
72
|
+
securerandom (0.4.1)
|
|
63
73
|
sorbet (0.5.11151)
|
|
64
74
|
sorbet-static (= 0.5.11151)
|
|
65
75
|
sorbet-runtime (0.5.10972)
|
|
@@ -67,11 +77,11 @@ GEM
|
|
|
67
77
|
sorbet-static (0.5.11151-x86_64-linux)
|
|
68
78
|
tzinfo (2.0.6)
|
|
69
79
|
concurrent-ruby (~> 1.0)
|
|
80
|
+
uri (1.1.1)
|
|
70
81
|
webmock (3.19.1)
|
|
71
82
|
addressable (>= 2.8.0)
|
|
72
83
|
crack (>= 0.3.2)
|
|
73
84
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
74
|
-
zeitwerk (2.6.11)
|
|
75
85
|
|
|
76
86
|
PLATFORMS
|
|
77
87
|
arm64-darwin-23
|
|
@@ -81,7 +91,7 @@ PLATFORMS
|
|
|
81
91
|
DEPENDENCIES
|
|
82
92
|
bundler (~> 2.4.22)
|
|
83
93
|
rake (~> 13.0)
|
|
84
|
-
rspec (= 3.
|
|
94
|
+
rspec (= 3.13)
|
|
85
95
|
setsuzoku!
|
|
86
96
|
sorbet (>= 0.5, < 1.0)
|
|
87
97
|
webmock (= 3.19.1)
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
require 'active_support/json'
|
|
5
5
|
require 'active_support/core_ext/hash/indifferent_access'
|
|
6
6
|
require 'active_support/core_ext/string/access'
|
|
7
|
-
require 'faraday'
|
|
8
|
-
require 'faraday/multipart'
|
|
9
7
|
|
|
10
8
|
module Setsuzoku
|
|
11
9
|
module Service
|
|
@@ -37,49 +35,32 @@ module Setsuzoku
|
|
|
37
35
|
# attachment_urls - 'Array<String>' List of attachment urls to be attached as form files.
|
|
38
36
|
#
|
|
39
37
|
# @return [Hash] the parsed response object.
|
|
40
|
-
sig
|
|
41
|
-
override.params(request: RestAPIRequest, action_details: T::Hash[T.untyped, T.untyped],
|
|
42
|
-
options: T.untyped).returns(Faraday::Response)
|
|
43
|
-
end
|
|
38
|
+
sig { override.params(request: RestAPIRequest, action_details: T::Hash[T.untyped, T.untyped], options: T.untyped).returns(Faraday::Response) }
|
|
44
39
|
def perform_external_call(request:, action_details:, **options)
|
|
45
|
-
request_properties = get_request_properties(action_name: request.action,
|
|
46
|
-
|
|
47
|
-
request_options = self.request_options(request_properties[:request_format],
|
|
48
|
-
action_details[:actions][request.action])
|
|
40
|
+
request_properties = self.get_request_properties(action_name: request.action, action_details: action_details, req_params: request.body)
|
|
41
|
+
request_options = self.request_options(request_properties[:request_format], action_details[:actions][request.action])
|
|
49
42
|
authorization = request_options.delete(:authorization)
|
|
50
|
-
full_request = formulate_request(request_properties, request_options)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if !request.without_headers && authorization
|
|
66
|
-
# updated authorization with updated faraday
|
|
67
|
-
# https://lostisland.github.io/faraday/#/middleware/included/authentication
|
|
68
|
-
if authorization.key?(:token)
|
|
69
|
-
faraday.request(:authorization, 'Bearer', authorization[:token])
|
|
70
|
-
elsif authorization.key?(:basic_auth)
|
|
71
|
-
faraday.request(:authorization, :basic, authorization[:basic_auth][:username],
|
|
72
|
-
authorization[:basic_auth][:password])
|
|
43
|
+
full_request = self.formulate_request(request_properties, request_options)
|
|
44
|
+
|
|
45
|
+
@faraday = Faraday.new(url: request_properties[:formatted_full_url], request: { params_encoder: Faraday::FlatParamsEncoder }) do |faraday|
|
|
46
|
+
faraday.request(:multipart) if options[:attachment_urls].present?
|
|
47
|
+
faraday.request(:url_encoded)
|
|
48
|
+
unless request.without_headers
|
|
49
|
+
if authorization
|
|
50
|
+
# updated authorization with updated faraday
|
|
51
|
+
# https://lostisland.github.io/faraday/#/middleware/included/authentication
|
|
52
|
+
if authorization.key?(:token)
|
|
53
|
+
faraday.request(:authorization, 'Bearer', authorization[:token])
|
|
54
|
+
elsif authorization.key?(:basic_auth)
|
|
55
|
+
faraday.request(:authorization, :basic, authorization[:basic_auth][:username], authorization[:basic_auth][:password])
|
|
56
|
+
end
|
|
73
57
|
end
|
|
74
58
|
end
|
|
75
|
-
|
|
76
59
|
faraday.adapter Faraday.default_adapter
|
|
77
60
|
end
|
|
78
|
-
|
|
79
|
-
# Attachments URLs
|
|
80
61
|
attachment_urls = options[:attachment_url] || options[:attachment_urls]
|
|
81
62
|
if attachment_urls.present?
|
|
82
|
-
resp =
|
|
63
|
+
resp = @faraday.post do |req|
|
|
83
64
|
payload = {}
|
|
84
65
|
# create an array to just iterate over for 1 or many urls
|
|
85
66
|
attachment_urls = [attachment_urls] if options[:attachment_url]
|
|
@@ -98,36 +79,24 @@ module Setsuzoku
|
|
|
98
79
|
end
|
|
99
80
|
else
|
|
100
81
|
if request.without_headers
|
|
101
|
-
|
|
82
|
+
@faraday.headers = {}
|
|
102
83
|
elsif request_options[:headers]
|
|
103
|
-
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
# TODO: !!!! this is wrong here because multipart is used for images as well not only text/plain
|
|
107
|
-
# TODO: What if the request params are empty?
|
|
108
|
-
if connection.builder.app.class <= Faraday::Multipart::Middleware
|
|
109
|
-
full_request = request_properties[:req_params].transform_values do |v|
|
|
110
|
-
Faraday::Multipart::ParamPart.new(v, 'text/plain')
|
|
111
|
-
end
|
|
84
|
+
@faraday.headers = (@faraday.headers || {}).merge(request_options[:headers])
|
|
112
85
|
end
|
|
113
|
-
|
|
114
|
-
resp = connection.send(request_properties[:request_method], request_properties[:formatted_full_url],
|
|
115
|
-
full_request)
|
|
86
|
+
resp = @faraday.send(request_properties[:request_method], request_properties[:formatted_full_url], full_request)
|
|
116
87
|
end
|
|
117
|
-
|
|
118
88
|
resp
|
|
119
89
|
end
|
|
120
90
|
|
|
121
91
|
sig do
|
|
122
92
|
params(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
93
|
+
action_name: Symbol,
|
|
94
|
+
for_stub: T::Boolean,
|
|
95
|
+
req_params: T::Hash[T.untyped, T.untyped],
|
|
96
|
+
action_details: T::Hash[Symbol, T.untyped]
|
|
127
97
|
).returns(T::Hash[Symbol, T.untyped])
|
|
128
98
|
end
|
|
129
|
-
def get_request_properties(action_name:, for_stub: false, req_params: {},
|
|
130
|
-
action_details: { actions: plugin.api_actions, url: plugin.api_base_url })
|
|
99
|
+
def get_request_properties(action_name:, for_stub: false, req_params: {}, action_details: { actions: self.plugin.api_actions, url: self.plugin.api_base_url })
|
|
131
100
|
action = action_details[:actions][action_name]
|
|
132
101
|
url = action.has_key?(:request_url) ? action[:request_url] : action_details[:url]
|
|
133
102
|
request_method, endpoint = action.first
|
|
@@ -136,15 +105,15 @@ module Setsuzoku
|
|
|
136
105
|
response_format = action[:response_type]
|
|
137
106
|
stub_data = action[:stub_data] if for_stub
|
|
138
107
|
full_url = url + endpoint
|
|
139
|
-
formatted_full_url, req_params = replace_dynamic_vars(full_url: full_url, req_params: req_params)
|
|
108
|
+
formatted_full_url, req_params = self.replace_dynamic_vars(full_url: full_url, req_params: req_params)
|
|
140
109
|
{
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
110
|
+
request_method: request_method,
|
|
111
|
+
endpoint: endpoint,
|
|
112
|
+
request_format: request_format,
|
|
113
|
+
response_format: response_format,
|
|
114
|
+
formatted_full_url: formatted_full_url,
|
|
115
|
+
req_params: req_params,
|
|
116
|
+
stub_data: stub_data,
|
|
148
117
|
}
|
|
149
118
|
end
|
|
150
119
|
|
|
@@ -169,27 +138,29 @@ module Setsuzoku
|
|
|
169
138
|
else
|
|
170
139
|
params # Faraday supports empty hashes for other request types...
|
|
171
140
|
end
|
|
172
|
-
elsif request_format.include?('urlencoded')
|
|
173
|
-
# if the header or request format include urlencoded return the body as a hash
|
|
174
|
-
params
|
|
175
|
-
elsif request_properties[:request_format] == :xml
|
|
176
|
-
# return either xml or json
|
|
177
|
-
convert_hash_to_xml(params)
|
|
178
141
|
else
|
|
179
|
-
|
|
142
|
+
# if the header or request format include urlencoded return the body as a hash
|
|
143
|
+
if request_format.include?('urlencoded')
|
|
144
|
+
params
|
|
145
|
+
else
|
|
146
|
+
# return either xml or json
|
|
147
|
+
if request_properties[:request_format] == :xml
|
|
148
|
+
convert_hash_to_xml(params)
|
|
149
|
+
else
|
|
150
|
+
params.to_json
|
|
151
|
+
end
|
|
152
|
+
end
|
|
180
153
|
end
|
|
181
154
|
end
|
|
182
155
|
|
|
183
156
|
def request_options(request_format = nil, action_details = {})
|
|
184
|
-
request_options = {
|
|
185
|
-
|
|
186
|
-
}
|
|
157
|
+
request_options = {}
|
|
158
|
+
(request_options = {})[:headers] = {}
|
|
187
159
|
request_options[:headers]
|
|
188
|
-
.merge!(auth_strategy.get_from_context(:auth_headers).except(:authorization))
|
|
189
|
-
.merge!(get_from_context(:api_headers))
|
|
160
|
+
.merge!(self.auth_strategy.get_from_context(:auth_headers).except(:authorization))
|
|
161
|
+
.merge!(self.get_from_context(:api_headers))
|
|
190
162
|
.merge!(action_details[:request_options] || {})
|
|
191
|
-
request_options[:authorization] =
|
|
192
|
-
action_details[:authorization] || auth_strategy.get_from_context(:auth_headers)[:authorization]
|
|
163
|
+
request_options[:authorization] = action_details[:authorization] || self.auth_strategy.get_from_context(:auth_headers)[:authorization]
|
|
193
164
|
|
|
194
165
|
content_type = case request_format
|
|
195
166
|
when :json
|
|
@@ -203,8 +174,7 @@ module Setsuzoku
|
|
|
203
174
|
when :'x-www-form-urlencoded;charset=UTF-8'
|
|
204
175
|
'application/x-www-form-urlencoded;charset=UTF-8'
|
|
205
176
|
else
|
|
206
|
-
|
|
207
|
-
request_format || 'application/json'
|
|
177
|
+
'application/json'
|
|
208
178
|
end
|
|
209
179
|
(request_options[:headers] ||= {})[:'Content-Type'] = content_type
|
|
210
180
|
request_options
|
|
@@ -217,7 +187,7 @@ module Setsuzoku
|
|
|
217
187
|
# it in the body and the url, then you should put it in params twice with different names.
|
|
218
188
|
req_params = req_params.dup
|
|
219
189
|
full_url = full_url.dup
|
|
220
|
-
dynamic_vars = plugin.dynamic_url_params.merge(req_params).with_indifferent_access
|
|
190
|
+
dynamic_vars = self.plugin.dynamic_url_params.merge(req_params).with_indifferent_access
|
|
221
191
|
full_url.scan(/({{.*?}})/).flatten.each do |var|
|
|
222
192
|
var_name = var.tr('{{ }}', '')
|
|
223
193
|
next unless dynamic_vars[var_name]
|
data/lib/setsuzoku/version.rb
CHANGED
data/setsuzoku.gemspec
CHANGED
|
@@ -38,12 +38,11 @@ Gem::Specification.new do |spec|
|
|
|
38
38
|
|
|
39
39
|
spec.add_development_dependency "bundler", "~> 2.4.22"
|
|
40
40
|
spec.add_development_dependency "rake", "~> 13.0"
|
|
41
|
-
spec.add_development_dependency "rspec", "3.
|
|
41
|
+
spec.add_development_dependency "rspec", "3.13"
|
|
42
42
|
spec.add_development_dependency "webmock", "3.19.1"
|
|
43
|
-
spec.add_runtime_dependency "activesupport", ">=
|
|
43
|
+
spec.add_runtime_dependency "activesupport", ">= 8.0", '< 9'
|
|
44
44
|
spec.add_development_dependency "sorbet", ">= 0.5", '< 1.0'
|
|
45
45
|
spec.add_runtime_dependency "sorbet-runtime", ">= 0.5", '< 1.0'
|
|
46
46
|
spec.add_runtime_dependency "faraday", ">= 2.7.10", "< 3.0"
|
|
47
|
-
spec.add_runtime_dependency "faraday-multipart", ">= 1.0.4", "< 2.0"
|
|
48
47
|
spec.add_runtime_dependency "nokogiri", ">= 1.10", "< 2.0"
|
|
49
48
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: setsuzoku
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Luke Stadtler
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-02-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -44,14 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - '='
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '3.
|
|
47
|
+
version: '3.13'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - '='
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '3.
|
|
54
|
+
version: '3.13'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: webmock
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,20 +72,20 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
75
|
+
version: '8.0'
|
|
76
76
|
- - "<"
|
|
77
77
|
- !ruby/object:Gem::Version
|
|
78
|
-
version: '
|
|
78
|
+
version: '9'
|
|
79
79
|
type: :runtime
|
|
80
80
|
prerelease: false
|
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
|
82
82
|
requirements:
|
|
83
83
|
- - ">="
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: '
|
|
85
|
+
version: '8.0'
|
|
86
86
|
- - "<"
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
88
|
+
version: '9'
|
|
89
89
|
- !ruby/object:Gem::Dependency
|
|
90
90
|
name: sorbet
|
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -146,26 +146,6 @@ dependencies:
|
|
|
146
146
|
- - "<"
|
|
147
147
|
- !ruby/object:Gem::Version
|
|
148
148
|
version: '3.0'
|
|
149
|
-
- !ruby/object:Gem::Dependency
|
|
150
|
-
name: faraday-multipart
|
|
151
|
-
requirement: !ruby/object:Gem::Requirement
|
|
152
|
-
requirements:
|
|
153
|
-
- - ">="
|
|
154
|
-
- !ruby/object:Gem::Version
|
|
155
|
-
version: 1.0.4
|
|
156
|
-
- - "<"
|
|
157
|
-
- !ruby/object:Gem::Version
|
|
158
|
-
version: '2.0'
|
|
159
|
-
type: :runtime
|
|
160
|
-
prerelease: false
|
|
161
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
162
|
-
requirements:
|
|
163
|
-
- - ">="
|
|
164
|
-
- !ruby/object:Gem::Version
|
|
165
|
-
version: 1.0.4
|
|
166
|
-
- - "<"
|
|
167
|
-
- !ruby/object:Gem::Version
|
|
168
|
-
version: '2.0'
|
|
169
149
|
- !ruby/object:Gem::Dependency
|
|
170
150
|
name: nokogiri
|
|
171
151
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -199,6 +179,7 @@ files:
|
|
|
199
179
|
- ".github/workflows/ruby.yml"
|
|
200
180
|
- ".gitignore"
|
|
201
181
|
- ".rspec"
|
|
182
|
+
- ".ruby-version"
|
|
202
183
|
- ".travis.yml"
|
|
203
184
|
- CODE_OF_CONDUCT.md
|
|
204
185
|
- Gemfile
|
|
@@ -287,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
287
268
|
- !ruby/object:Gem::Version
|
|
288
269
|
version: '0'
|
|
289
270
|
requirements: []
|
|
290
|
-
rubygems_version: 3.
|
|
271
|
+
rubygems_version: 3.4.19
|
|
291
272
|
signing_key:
|
|
292
273
|
specification_version: 4
|
|
293
274
|
summary: Extensible 3rd-party interface and functionality plugins
|