haveapi 0.18.1 → 0.19.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/haveapi.gemspec +2 -1
- data/lib/haveapi/action.rb +72 -31
- data/lib/haveapi/authentication/base.rb +1 -1
- data/lib/haveapi/authentication/basic/provider.rb +2 -2
- data/lib/haveapi/authentication/chain.rb +4 -4
- data/lib/haveapi/authentication/oauth2/config.rb +62 -15
- data/lib/haveapi/authentication/oauth2/provider.rb +111 -17
- data/lib/haveapi/authentication/oauth2/revoke_endpoint.rb +36 -0
- data/lib/haveapi/authentication/token/config.rb +1 -0
- data/lib/haveapi/authorization.rb +19 -12
- data/lib/haveapi/client_examples/js_client.rb +11 -1
- data/lib/haveapi/client_examples/php_client.rb +43 -1
- data/lib/haveapi/context.rb +21 -2
- data/lib/haveapi/example.rb +9 -9
- data/lib/haveapi/hooks.rb +23 -23
- data/lib/haveapi/metadata.rb +1 -1
- data/lib/haveapi/model_adapter.rb +14 -14
- data/lib/haveapi/model_adapters/active_record.rb +20 -20
- data/lib/haveapi/output_formatter.rb +4 -4
- data/lib/haveapi/output_formatters/base.rb +1 -1
- data/lib/haveapi/parameters/resource.rb +22 -22
- data/lib/haveapi/parameters/typed.rb +7 -7
- data/lib/haveapi/params.rb +24 -22
- data/lib/haveapi/resource.rb +9 -3
- data/lib/haveapi/resources/action_state.rb +16 -16
- data/lib/haveapi/route.rb +3 -2
- data/lib/haveapi/server.rb +113 -98
- data/lib/haveapi/spec/mock_action.rb +7 -7
- data/lib/haveapi/spec/spec_methods.rb +8 -8
- data/lib/haveapi/tasks/yard.rb +2 -2
- data/lib/haveapi/validator.rb +13 -13
- data/lib/haveapi/validator_chain.rb +6 -6
- data/lib/haveapi/validators/acceptance.rb +2 -2
- data/lib/haveapi/validators/confirmation.rb +4 -4
- data/lib/haveapi/validators/exclusion.rb +4 -4
- data/lib/haveapi/validators/format.rb +4 -4
- data/lib/haveapi/validators/inclusion.rb +3 -3
- data/lib/haveapi/validators/length.rb +1 -1
- data/lib/haveapi/validators/numericality.rb +3 -3
- data/lib/haveapi/validators/presence.rb +2 -2
- data/lib/haveapi/version.rb +1 -1
- data/lib/haveapi/views/version_page/auth_body.erb +6 -4
- data/lib/haveapi/views/version_page/resource_body.erb +2 -0
- data/lib/haveapi.rb +1 -0
- data/spec/authorization_spec.rb +28 -28
- data/spec/envelope_spec.rb +4 -4
- data/spec/parameters/typed_spec.rb +3 -3
- data/spec/params_spec.rb +2 -2
- data/spec/validators/acceptance_spec.rb +2 -2
- data/spec/validators/confirmation_spec.rb +4 -4
- data/spec/validators/exclusion_spec.rb +2 -2
- data/spec/validators/format_spec.rb +5 -5
- data/spec/validators/inclusion_spec.rb +8 -8
- data/spec/validators/presence_spec.rb +1 -1
- metadata +19 -4
data/lib/haveapi/validator.rb
CHANGED
@@ -8,15 +8,15 @@ module HaveAPI
|
|
8
8
|
# when default configuration is sufficient. Custom settings can be set using
|
9
9
|
# the full form.
|
10
10
|
#
|
11
|
-
# The short form means the validator is configured as
|
12
|
-
# The full form is
|
11
|
+
# The short form means the validator is configured as `<option> => <single value>`.
|
12
|
+
# The full form is `<option> => { hash with configuration options }`.
|
13
13
|
#
|
14
14
|
# It is up to each validator what exactly the short form means and what options
|
15
15
|
# can be set. Specify only those options that you wish to override. The only
|
16
|
-
# common option is
|
16
|
+
# common option is `message` - the error message sent to the client if the provided
|
17
17
|
# value did not pass the validator.
|
18
18
|
#
|
19
|
-
# The
|
19
|
+
# The `message` can contain `%{value}`, which is replaced by the actual value
|
20
20
|
# that did not pass the validator.
|
21
21
|
class Validator
|
22
22
|
class << self
|
@@ -35,13 +35,13 @@ module HaveAPI
|
|
35
35
|
@takes = opts
|
36
36
|
end
|
37
37
|
|
38
|
-
# True if this validator uses any of options in hash
|
38
|
+
# True if this validator uses any of options in hash `opts`.
|
39
39
|
def use?(opts)
|
40
40
|
!(opts.keys & @takes).empty?
|
41
41
|
end
|
42
42
|
|
43
|
-
# Use the validator on given set of options in hash
|
44
|
-
# options are removed from
|
43
|
+
# Use the validator on given set of options in hash `opts`. Used
|
44
|
+
# options are removed from `opts`.
|
45
45
|
def use(opts)
|
46
46
|
keys = opts.keys & @takes
|
47
47
|
|
@@ -84,7 +84,7 @@ module HaveAPI
|
|
84
84
|
end
|
85
85
|
|
86
86
|
# Calls method valid?, but before calling it sets instance variable
|
87
|
-
#
|
87
|
+
# `@params`. It contains of hash of all other parameters. The validator
|
88
88
|
# may use this information as it will.
|
89
89
|
def validate(v, params)
|
90
90
|
@params = params
|
@@ -96,12 +96,12 @@ module HaveAPI
|
|
96
96
|
protected
|
97
97
|
# This method has three modes of function.
|
98
98
|
#
|
99
|
-
# 1. If
|
99
|
+
# 1. If `v` is nil, it returns `@opts`. It is used if `@opts` is not a hash
|
100
100
|
# but a single value - abbreviation if we're ok with default settings
|
101
101
|
# for given validator.
|
102
|
-
# 2. If
|
103
|
-
# 3. If
|
104
|
-
# returned. Otherwise the
|
102
|
+
# 2. If `v` is not nil and `@opts` is not a hash, it returns `default`
|
103
|
+
# 3. If `v` is not nil and `@opts` is a hash and `@opts[v]` is not nil, it is
|
104
|
+
# returned. Otherwise the `default` is returned.
|
105
105
|
def take(v = nil, default = nil)
|
106
106
|
if v.nil?
|
107
107
|
@opts
|
@@ -120,7 +120,7 @@ module HaveAPI
|
|
120
120
|
@useful = false
|
121
121
|
end
|
122
122
|
|
123
|
-
# Returns true if
|
123
|
+
# Returns true if `@opts` is not a hash.
|
124
124
|
def simple?
|
125
125
|
!@opts.is_a?(::Hash)
|
126
126
|
end
|
@@ -13,11 +13,11 @@ module HaveAPI
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
# Adds validator that takes option
|
16
|
+
# Adds validator that takes option `name` with configuration in `opt`.
|
17
17
|
# If such validator already exists, it is reconfigured with newly provided
|
18
|
-
#
|
18
|
+
# `opt`.
|
19
19
|
#
|
20
|
-
# If
|
20
|
+
# If `opt` is `nil`, the validator is removed.
|
21
21
|
def add_or_replace(name, opt)
|
22
22
|
args = { name => opt }
|
23
23
|
|
@@ -61,8 +61,8 @@ module HaveAPI
|
|
61
61
|
ret
|
62
62
|
end
|
63
63
|
|
64
|
-
# Validate
|
65
|
-
# either
|
64
|
+
# Validate `value` using all configured validators. It returns
|
65
|
+
# either `true` if the value passed all validators or an array
|
66
66
|
# of errors.
|
67
67
|
def validate(value, params)
|
68
68
|
ret = []
|
@@ -70,7 +70,7 @@ module HaveAPI
|
|
70
70
|
@validators.each do |validator|
|
71
71
|
next if validator.validate(value, params)
|
72
72
|
ret << validator.message % {
|
73
|
-
|
73
|
+
value: value
|
74
74
|
}
|
75
75
|
end
|
76
76
|
|
@@ -13,7 +13,7 @@ module HaveAPI
|
|
13
13
|
# message: 'the error message'
|
14
14
|
# }
|
15
15
|
#
|
16
|
-
#
|
16
|
+
# `equal` defaults to `true`.
|
17
17
|
class Validators::Confirmation < Validator
|
18
18
|
name :confirm
|
19
19
|
takes :confirm
|
@@ -30,9 +30,9 @@ module HaveAPI
|
|
30
30
|
|
31
31
|
def describe
|
32
32
|
{
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
equal: @equal ? true : false,
|
34
|
+
parameter: @param,
|
35
|
+
message: @message,
|
36
36
|
}
|
37
37
|
end
|
38
38
|
|
@@ -12,8 +12,8 @@ module HaveAPI
|
|
12
12
|
# message: 'the error message'
|
13
13
|
# }
|
14
14
|
#
|
15
|
-
# In this case, the value could be anything but
|
16
|
-
#
|
15
|
+
# In this case, the value could be anything but `one`, `two` or
|
16
|
+
# `three`.
|
17
17
|
class Validators::Exclusion < Validator
|
18
18
|
name :exclude
|
19
19
|
takes :exclude
|
@@ -28,8 +28,8 @@ module HaveAPI
|
|
28
28
|
|
29
29
|
def describe
|
30
30
|
{
|
31
|
-
|
32
|
-
|
31
|
+
values: @values,
|
32
|
+
message: @message,
|
33
33
|
}
|
34
34
|
end
|
35
35
|
|
@@ -12,7 +12,7 @@ module HaveAPI
|
|
12
12
|
# message: 'the error message'
|
13
13
|
# }
|
14
14
|
#
|
15
|
-
# Option
|
15
|
+
# Option `choices` is an alias to `include`.
|
16
16
|
class Validators::Inclusion < Validator
|
17
17
|
name :include
|
18
18
|
takes :choices, :include
|
@@ -36,8 +36,8 @@ module HaveAPI
|
|
36
36
|
|
37
37
|
def describe
|
38
38
|
{
|
39
|
-
|
40
|
-
|
39
|
+
values: @values,
|
40
|
+
message: @message,
|
41
41
|
}
|
42
42
|
end
|
43
43
|
|
@@ -11,7 +11,7 @@ module HaveAPI
|
|
11
11
|
# message: 'the error message'
|
12
12
|
# }
|
13
13
|
#
|
14
|
-
# Will allow values
|
14
|
+
# Will allow values `3`, `5`, `7` and `9`.
|
15
15
|
#
|
16
16
|
# string :param, number: {
|
17
17
|
# min: 3,
|
@@ -19,7 +19,7 @@ module HaveAPI
|
|
19
19
|
# mod: 2,
|
20
20
|
# }
|
21
21
|
#
|
22
|
-
# Will allow values
|
22
|
+
# Will allow values `4`, `6`, `8` and `10`.
|
23
23
|
class Validators::Numericality < Validator
|
24
24
|
name :number
|
25
25
|
takes :number
|
@@ -74,7 +74,7 @@ module HaveAPI
|
|
74
74
|
|
75
75
|
def describe
|
76
76
|
ret = {
|
77
|
-
|
77
|
+
message: @message,
|
78
78
|
}
|
79
79
|
|
80
80
|
ret[:min] = @min if @min
|
data/lib/haveapi/version.rb
CHANGED
@@ -12,10 +12,12 @@
|
|
12
12
|
</dl>
|
13
13
|
<% elsif name == :oauth2 %>
|
14
14
|
<dl>
|
15
|
-
<dt>Authorize
|
16
|
-
<dd><%= info[:
|
17
|
-
<dt>Token
|
18
|
-
<dd><%= info[:
|
15
|
+
<dt>Authorize URL:</dt>
|
16
|
+
<dd><%= info[:authorize_url] %></dd>
|
17
|
+
<dt>Token URL:</dt>
|
18
|
+
<dd><%= info[:token_url] %></dd>
|
19
|
+
<dt>Revoke URL:</dt>
|
20
|
+
<dd><%= info[:revoke_url] %></dd>
|
19
21
|
</dl>
|
20
22
|
<% end %>
|
21
23
|
|
data/lib/haveapi.rb
CHANGED
data/spec/authorization_spec.rb
CHANGED
@@ -40,17 +40,17 @@ describe HaveAPI::Authorization do
|
|
40
40
|
input whitelist: %i(param1)
|
41
41
|
allow
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
expect(auth.authorized?(nil)).to be true
|
45
|
-
|
45
|
+
|
46
46
|
action = Resource::Index
|
47
47
|
|
48
48
|
expect(auth.filter_input(
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
action.input.params,
|
50
|
+
action.model_adapter(action.input.layout).input({
|
51
|
+
param1: '123',
|
52
|
+
param2: '456',
|
53
|
+
})
|
54
54
|
).keys).to contain_exactly(:param1)
|
55
55
|
end
|
56
56
|
|
@@ -59,17 +59,17 @@ describe HaveAPI::Authorization do
|
|
59
59
|
input blacklist: %i(param1)
|
60
60
|
allow
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
expect(auth.authorized?(nil)).to be true
|
64
|
-
|
64
|
+
|
65
65
|
action = Resource::Index
|
66
66
|
|
67
67
|
expect(auth.filter_input(
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
68
|
+
action.input.params,
|
69
|
+
action.model_adapter(action.input.layout).input({
|
70
|
+
param1: '123',
|
71
|
+
param2: '456',
|
72
|
+
})
|
73
73
|
).keys).to contain_exactly(:param2)
|
74
74
|
end
|
75
75
|
|
@@ -78,17 +78,17 @@ describe HaveAPI::Authorization do
|
|
78
78
|
output whitelist: %i(param1)
|
79
79
|
allow
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
expect(auth.authorized?(nil)).to be true
|
83
|
-
|
83
|
+
|
84
84
|
action = Resource::Index
|
85
85
|
|
86
86
|
expect(auth.filter_output(
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
87
|
+
action.output.params,
|
88
|
+
action.model_adapter(action.output.layout).output(nil, {
|
89
|
+
param1: '123',
|
90
|
+
param2: '456',
|
91
|
+
})
|
92
92
|
).keys).to contain_exactly(:param1)
|
93
93
|
end
|
94
94
|
|
@@ -97,17 +97,17 @@ describe HaveAPI::Authorization do
|
|
97
97
|
output blacklist: %i(param1)
|
98
98
|
allow
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
expect(auth.authorized?(nil)).to be true
|
102
|
-
|
102
|
+
|
103
103
|
action = Resource::Index
|
104
104
|
|
105
105
|
expect(auth.filter_output(
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
106
|
+
action.output.params,
|
107
|
+
action.model_adapter(action.output.layout).output(nil, {
|
108
|
+
param1: '123',
|
109
|
+
param2: '456',
|
110
|
+
})
|
111
111
|
).keys).to contain_exactly(:param2)
|
112
112
|
end
|
113
113
|
end
|
data/spec/envelope_spec.rb
CHANGED
@@ -5,10 +5,10 @@ describe 'Envelope' do
|
|
5
5
|
it 'returns correct envelope' do
|
6
6
|
call_api(:options, '/')
|
7
7
|
expect(api_response.envelope.keys).to contain_exactly(
|
8
|
-
|
8
|
+
*%i(version status response message errors)
|
9
9
|
)
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
it 'succeeds' do
|
13
13
|
call_api(:options, '/')
|
14
14
|
expect(api_response).to be_ok
|
@@ -17,11 +17,11 @@ describe 'Envelope' do
|
|
17
17
|
|
18
18
|
context 'data' do
|
19
19
|
empty_api
|
20
|
-
|
20
|
+
|
21
21
|
it 'returns correct envelope' do
|
22
22
|
call_api(:get, '/unknown_resource')
|
23
23
|
expect(api_response.envelope.keys).to contain_exactly(
|
24
|
-
|
24
|
+
*%i(status response message errors)
|
25
25
|
)
|
26
26
|
end
|
27
27
|
|
@@ -11,9 +11,9 @@ describe 'Parameters::Typed' do
|
|
11
11
|
|
12
12
|
it 'does not change provided arguments' do
|
13
13
|
kwargs = {
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
label: 'Param 1',
|
15
|
+
desc: 'Desc',
|
16
|
+
required: true,
|
17
17
|
}
|
18
18
|
p_arg(kwargs)
|
19
19
|
expect(kwargs.keys).to contain_exactly(*%i(label desc required))
|
data/spec/params_spec.rb
CHANGED
@@ -156,7 +156,7 @@ describe HaveAPI::Params do
|
|
156
156
|
|
157
157
|
expect do
|
158
158
|
p.check_layout({
|
159
|
-
|
159
|
+
my_resource: {}
|
160
160
|
})
|
161
161
|
end.not_to raise_error
|
162
162
|
end
|
@@ -171,7 +171,7 @@ describe HaveAPI::Params do
|
|
171
171
|
|
172
172
|
expect do
|
173
173
|
p.check_layout({
|
174
|
-
|
174
|
+
something_bad: {}
|
175
175
|
})
|
176
176
|
end.to raise_error(HaveAPI::ValidationError)
|
177
177
|
end
|
@@ -7,7 +7,7 @@ describe HaveAPI::Validators::Acceptance do
|
|
7
7
|
it "rejects incorrect value" do
|
8
8
|
expect(@v.valid?('bar')).to be false
|
9
9
|
end
|
10
|
-
end
|
10
|
+
end
|
11
11
|
|
12
12
|
context 'short form' do
|
13
13
|
before(:each) do
|
@@ -20,7 +20,7 @@ describe HaveAPI::Validators::Acceptance do
|
|
20
20
|
context 'full form' do
|
21
21
|
before(:each) do
|
22
22
|
@v = HaveAPI::Validators::Acceptance.new(:accept, {
|
23
|
-
|
23
|
+
value: 'foo'
|
24
24
|
})
|
25
25
|
end
|
26
26
|
|
@@ -7,7 +7,7 @@ describe HaveAPI::Validators::Confirmation do
|
|
7
7
|
it "rejects a different value" do
|
8
8
|
expect(@v.validate('bar', {other_param: 'foo'})).to be false
|
9
9
|
end
|
10
|
-
end
|
10
|
+
end
|
11
11
|
|
12
12
|
context 'short form' do
|
13
13
|
before(:each) do
|
@@ -20,7 +20,7 @@ describe HaveAPI::Validators::Confirmation do
|
|
20
20
|
context 'full form' do
|
21
21
|
before(:each) do
|
22
22
|
@v = HaveAPI::Validators::Confirmation.new(:confirm, {
|
23
|
-
|
23
|
+
param: :other_param
|
24
24
|
})
|
25
25
|
end
|
26
26
|
|
@@ -30,8 +30,8 @@ describe HaveAPI::Validators::Confirmation do
|
|
30
30
|
context 'with equal = false' do
|
31
31
|
before(:each) do
|
32
32
|
@v = HaveAPI::Validators::Confirmation.new(:confirm, {
|
33
|
-
|
34
|
-
|
33
|
+
param: :other_param,
|
34
|
+
equal: false
|
35
35
|
})
|
36
36
|
end
|
37
37
|
|
@@ -10,7 +10,7 @@ describe HaveAPI::Validators::Exclusion do
|
|
10
10
|
expect(@v.valid?('zero')).to be true
|
11
11
|
expect(@v.valid?('four')).to be true
|
12
12
|
end
|
13
|
-
end
|
13
|
+
end
|
14
14
|
|
15
15
|
context 'short form' do
|
16
16
|
before(:each) do
|
@@ -23,7 +23,7 @@ describe HaveAPI::Validators::Exclusion do
|
|
23
23
|
context 'full form' do
|
24
24
|
before(:each) do
|
25
25
|
@v = HaveAPI::Validators::Exclusion.new(:exclude, {
|
26
|
-
|
26
|
+
values: %w(one two three)
|
27
27
|
})
|
28
28
|
end
|
29
29
|
|
@@ -10,7 +10,7 @@ describe HaveAPI::Validators::Format do
|
|
10
10
|
expect(@v.valid?('bacacb')).to be false
|
11
11
|
expect(@v.valid?('b')).to be false
|
12
12
|
end
|
13
|
-
end
|
13
|
+
end
|
14
14
|
|
15
15
|
context 'with match = true' do
|
16
16
|
context 'short form' do
|
@@ -24,7 +24,7 @@ describe HaveAPI::Validators::Format do
|
|
24
24
|
context 'full form' do
|
25
25
|
before(:each) do
|
26
26
|
@v = HaveAPI::Validators::Format.new(:format, {
|
27
|
-
|
27
|
+
rx: /^a[^b]+b$/
|
28
28
|
})
|
29
29
|
end
|
30
30
|
|
@@ -35,11 +35,11 @@ describe HaveAPI::Validators::Format do
|
|
35
35
|
context 'with match = false' do
|
36
36
|
before(:each) do
|
37
37
|
@v = HaveAPI::Validators::Format.new(:format, {
|
38
|
-
|
39
|
-
|
38
|
+
rx: /^a[^b]+b$/,
|
39
|
+
match: false
|
40
40
|
})
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
it 'rejects a value that matches the regexp' do
|
44
44
|
expect(@v.valid?('aab')).to be false
|
45
45
|
expect(@v.valid?('aacacb')).to be false
|
@@ -10,15 +10,15 @@ describe HaveAPI::Validators::Inclusion do
|
|
10
10
|
expect(@v.valid?('zero')).to be false
|
11
11
|
expect(@v.valid?('four')).to be false
|
12
12
|
end
|
13
|
-
end
|
13
|
+
end
|
14
14
|
|
15
15
|
[
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
%w(one two three),
|
17
|
+
{
|
18
|
+
one: 'Fancy one',
|
19
|
+
two: 'Fancy two',
|
20
|
+
three: 'Fancy three'
|
21
|
+
}
|
22
22
|
].each do |include|
|
23
23
|
context "with include as a '#{include.class}'" do
|
24
24
|
context 'short form' do
|
@@ -32,7 +32,7 @@ describe HaveAPI::Validators::Inclusion do
|
|
32
32
|
context 'full form' do
|
33
33
|
before(:each) do
|
34
34
|
@v = HaveAPI::Validators::Inclusion.new(:include, {
|
35
|
-
|
35
|
+
values: %w(one two three)
|
36
36
|
})
|
37
37
|
end
|
38
38
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haveapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Skokan
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 3.1.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sinatra-contrib
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.1.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.1.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: tilt
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +156,14 @@ dependencies:
|
|
142
156
|
requirements:
|
143
157
|
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
159
|
+
version: 0.19.0
|
146
160
|
type: :runtime
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
166
|
+
version: 0.19.0
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: mail
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -210,6 +224,7 @@ files:
|
|
210
224
|
- lib/haveapi/authentication/oauth2.rb
|
211
225
|
- lib/haveapi/authentication/oauth2/config.rb
|
212
226
|
- lib/haveapi/authentication/oauth2/provider.rb
|
227
|
+
- lib/haveapi/authentication/oauth2/revoke_endpoint.rb
|
213
228
|
- lib/haveapi/authentication/token.rb
|
214
229
|
- lib/haveapi/authentication/token/action_config.rb
|
215
230
|
- lib/haveapi/authentication/token/action_request.rb
|
@@ -332,7 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
332
347
|
- !ruby/object:Gem::Version
|
333
348
|
version: '0'
|
334
349
|
requirements: []
|
335
|
-
rubygems_version: 3.4.
|
350
|
+
rubygems_version: 3.4.22
|
336
351
|
signing_key:
|
337
352
|
specification_version: 4
|
338
353
|
summary: Framework for creating self-describing APIs
|