sinatra-validation 0.1.0 → 0.3.2
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 +5 -5
- data/.circleci/config.yml +20 -0
- data/.ruby-version +1 -0
- data/Gemfile +1 -0
- data/README.md +22 -8
- data/example/Gemfile.lock +42 -45
- data/example/app.rb +50 -8
- data/lib/sinatra/validation/version.rb +1 -1
- data/lib/sinatra/validation.rb +30 -9
- data/sinatra-validation.gemspec +5 -4
- metadata +44 -30
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: aa3a3b73cd49ac6a0b7b6e8aa3c4398e40dae9abb464a59ecc2dec9952ac3f23
|
4
|
+
data.tar.gz: 1d4a20b3554ed689d80b4dd524e1fd6aebf6e315c7e5de45c905f3d7faae379c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54e9deffe50aa5f7e3b5a660a84b777881fc1829083a0d8f16c02cd2d204d3072d835f937d4e2013643b258883d49461f3343678e0bda3d10b1ac47a2c5bc195
|
7
|
+
data.tar.gz: b542a570e3ea3a817230c759630f49a37b22ce34b8c12e3019377acc0add144446313eac1b23f647e9caac12f6457be5253d1088e37956f62e621b7922c631c6
|
@@ -0,0 +1,20 @@
|
|
1
|
+
version: 2
|
2
|
+
|
3
|
+
jobs:
|
4
|
+
build:
|
5
|
+
docker:
|
6
|
+
- image: circleci/ruby:2.6.6
|
7
|
+
|
8
|
+
working_directory: ~/repo
|
9
|
+
|
10
|
+
steps:
|
11
|
+
- checkout
|
12
|
+
- run:
|
13
|
+
name: install deps
|
14
|
+
command: |
|
15
|
+
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
16
|
+
|
17
|
+
- run:
|
18
|
+
name: run tests
|
19
|
+
command: |
|
20
|
+
bundle exec rake spec
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6.6
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Sinatra::Validation
|
2
|
+
[](https://badge.fury.io/rb/sinatra-validation)
|
2
3
|
[](https://circleci.com/gh/IzumiSy/sinatra-validation)
|
3
4
|
|
4
5
|
> Sinatra extension for request parameter validation powered with dry-validation
|
@@ -28,8 +29,10 @@ Now you can use `validates` helper in your routes. The validation logic itself i
|
|
28
29
|
```ruby
|
29
30
|
get '/basic' do
|
30
31
|
validates do
|
31
|
-
|
32
|
-
|
32
|
+
params do
|
33
|
+
required("name").filled(:str?)
|
34
|
+
required("age").filled(:str?)
|
35
|
+
end
|
33
36
|
end
|
34
37
|
|
35
38
|
...
|
@@ -42,8 +45,10 @@ You can suppress the default behavior which `validates` helper halts with 400 wh
|
|
42
45
|
```ruby
|
43
46
|
get '/silent' do
|
44
47
|
result = validates silent: true do
|
45
|
-
|
46
|
-
|
48
|
+
params do
|
49
|
+
required("name").filled(:str?)
|
50
|
+
required("age").filled(:str?)
|
51
|
+
end
|
47
52
|
end
|
48
53
|
|
49
54
|
p result # <struct Sinatra::Validation::Result params={"name"=>"justine"}, messages=["age is missing"]>
|
@@ -58,10 +63,12 @@ By default, `validates` helper halts with 400, but if you set the option `raise`
|
|
58
63
|
get '/raise' do
|
59
64
|
begin
|
60
65
|
validates raise: true do
|
61
|
-
|
66
|
+
params do
|
67
|
+
required("name").filled(:str?)
|
68
|
+
end
|
62
69
|
end
|
63
|
-
rescue =>
|
64
|
-
p
|
70
|
+
rescue => e
|
71
|
+
p e.result # <Sinatra::Validation::InvalidParameterError: {:params=>{}, :messages=>["name is missing"]}>
|
65
72
|
end
|
66
73
|
|
67
74
|
...
|
@@ -72,7 +79,7 @@ if you want to enable this option to all validations, you can do `enable :raise_
|
|
72
79
|
enable :raise_sinatra_validation_exception
|
73
80
|
|
74
81
|
error Sinatra::Validation::InvalidParameterError do
|
75
|
-
# do
|
82
|
+
# do anything you want
|
76
83
|
end
|
77
84
|
```
|
78
85
|
|
@@ -82,6 +89,13 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
82
89
|
|
83
90
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
84
91
|
|
92
|
+
### Test
|
93
|
+
|
94
|
+
```bash
|
95
|
+
$ bundle install
|
96
|
+
$ rake
|
97
|
+
```
|
98
|
+
|
85
99
|
## Contributing
|
86
100
|
|
87
101
|
Bug reports and pull requests are welcome on GitHub at https://github.com/IzumiSy/sinatra-validation. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/example/Gemfile.lock
CHANGED
@@ -1,62 +1,59 @@
|
|
1
1
|
PATH
|
2
|
-
remote: /
|
2
|
+
remote: /Users/izumi/Devs/sinatra-validation
|
3
3
|
specs:
|
4
|
-
sinatra-validation (0.
|
5
|
-
dry-validation
|
6
|
-
|
7
|
-
sinatra
|
4
|
+
sinatra-validation (0.3.2)
|
5
|
+
dry-validation (~> 1.3)
|
6
|
+
rack (>= 2.0.6)
|
7
|
+
sinatra (~> 2.1.0)
|
8
8
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
|
13
|
-
|
14
|
-
dry-configurable (0.7.0)
|
12
|
+
concurrent-ruby (1.1.9)
|
13
|
+
dry-configurable (0.13.0)
|
15
14
|
concurrent-ruby (~> 1.0)
|
16
|
-
|
15
|
+
dry-core (~> 0.6)
|
16
|
+
dry-container (0.9.0)
|
17
17
|
concurrent-ruby (~> 1.0)
|
18
|
-
dry-configurable (~> 0.
|
19
|
-
dry-core (0.
|
18
|
+
dry-configurable (~> 0.13, >= 0.13.0)
|
19
|
+
dry-core (0.7.1)
|
20
20
|
concurrent-ruby (~> 1.0)
|
21
|
-
dry-
|
22
|
-
dry-
|
23
|
-
|
24
|
-
|
25
|
-
dry-
|
26
|
-
dry-
|
21
|
+
dry-inflector (0.2.1)
|
22
|
+
dry-initializer (3.0.4)
|
23
|
+
dry-logic (1.2.0)
|
24
|
+
concurrent-ruby (~> 1.0)
|
25
|
+
dry-core (~> 0.5, >= 0.5)
|
26
|
+
dry-schema (1.8.0)
|
27
|
+
concurrent-ruby (~> 1.0)
|
28
|
+
dry-configurable (~> 0.13, >= 0.13.0)
|
29
|
+
dry-core (~> 0.5, >= 0.5)
|
30
|
+
dry-initializer (~> 3.0)
|
31
|
+
dry-logic (~> 1.0)
|
32
|
+
dry-types (~> 1.5)
|
33
|
+
dry-types (1.5.1)
|
27
34
|
concurrent-ruby (~> 1.0)
|
28
|
-
dry-configurable (~> 0.1)
|
29
35
|
dry-container (~> 0.3)
|
30
|
-
dry-core (~> 0.
|
31
|
-
dry-
|
32
|
-
dry-logic (~> 0
|
33
|
-
|
34
|
-
dry-validation (0.11.1)
|
36
|
+
dry-core (~> 0.5, >= 0.5)
|
37
|
+
dry-inflector (~> 0.1, >= 0.1.2)
|
38
|
+
dry-logic (~> 1.0, >= 1.0.2)
|
39
|
+
dry-validation (1.7.0)
|
35
40
|
concurrent-ruby (~> 1.0)
|
36
|
-
dry-
|
37
|
-
dry-core (~> 0.
|
38
|
-
dry-
|
39
|
-
dry-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
rack (2.0.3)
|
45
|
-
rack-protection (2.0.0)
|
41
|
+
dry-container (~> 0.7, >= 0.7.1)
|
42
|
+
dry-core (~> 0.5, >= 0.5)
|
43
|
+
dry-initializer (~> 3.0)
|
44
|
+
dry-schema (~> 1.8, >= 1.8.0)
|
45
|
+
mustermann (1.1.1)
|
46
|
+
ruby2_keywords (~> 0.0.1)
|
47
|
+
rack (2.2.3)
|
48
|
+
rack-protection (2.1.0)
|
46
49
|
rack
|
47
|
-
|
50
|
+
ruby2_keywords (0.0.5)
|
51
|
+
sinatra (2.1.0)
|
48
52
|
mustermann (~> 1.0)
|
49
|
-
rack (~> 2.
|
50
|
-
rack-protection (= 2.
|
53
|
+
rack (~> 2.2)
|
54
|
+
rack-protection (= 2.1.0)
|
51
55
|
tilt (~> 2.0)
|
52
|
-
|
53
|
-
backports (>= 2.0)
|
54
|
-
multi_json
|
55
|
-
mustermann (~> 1.0)
|
56
|
-
rack-protection (= 2.0.0)
|
57
|
-
sinatra (= 2.0.0)
|
58
|
-
tilt (>= 1.3, < 3)
|
59
|
-
tilt (2.0.8)
|
56
|
+
tilt (2.0.10)
|
60
57
|
|
61
58
|
PLATFORMS
|
62
59
|
ruby
|
@@ -66,4 +63,4 @@ DEPENDENCIES
|
|
66
63
|
sinatra-validation!
|
67
64
|
|
68
65
|
BUNDLED WITH
|
69
|
-
1.
|
66
|
+
1.17.2
|
data/example/app.rb
CHANGED
@@ -1,15 +1,33 @@
|
|
1
|
+
require 'rack/contrib'
|
1
2
|
require 'sinatra'
|
2
3
|
require 'sinatra/base'
|
3
4
|
require 'sinatra/validation'
|
5
|
+
require 'pry' if development? or test?
|
4
6
|
|
5
7
|
class Application < Sinatra::Base
|
6
8
|
configure do
|
7
9
|
register Sinatra::Validation
|
10
|
+
|
11
|
+
use Rack::JSONBodyParser
|
12
|
+
end
|
13
|
+
|
14
|
+
post '/post' do
|
15
|
+
content_type :json
|
16
|
+
|
17
|
+
validates do
|
18
|
+
params do
|
19
|
+
required(:name).filled(:str?)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
'ok'
|
8
24
|
end
|
9
25
|
|
10
26
|
get '/basic' do
|
11
27
|
validates do
|
12
|
-
|
28
|
+
params do
|
29
|
+
required(:name).filled(:str?)
|
30
|
+
end
|
13
31
|
end
|
14
32
|
|
15
33
|
'ok'
|
@@ -18,20 +36,44 @@ class Application < Sinatra::Base
|
|
18
36
|
get '/silent' do
|
19
37
|
content_type :json
|
20
38
|
|
21
|
-
|
22
|
-
|
39
|
+
validates silent: true do
|
40
|
+
params do
|
41
|
+
required(:name).filled(:str?)
|
42
|
+
end
|
23
43
|
end
|
24
44
|
|
25
|
-
p result
|
26
|
-
|
27
45
|
'ok'
|
28
46
|
end
|
29
47
|
|
30
48
|
get '/raise' do
|
31
|
-
|
32
|
-
|
49
|
+
begin
|
50
|
+
validates raise: true do
|
51
|
+
params do
|
52
|
+
required(:name).filled(:str?)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
'ok'
|
57
|
+
rescue Sinatra::Validation::InvalidParameterError => e
|
58
|
+
halt 500, 'invalid'
|
33
59
|
end
|
60
|
+
end
|
34
61
|
|
35
|
-
|
62
|
+
get '/filter' do
|
63
|
+
validates filter_unpermitted_params: true do
|
64
|
+
params do
|
65
|
+
optional(:allowed).filled(:str?)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
params.map{|k, v| "#{k}=#{v}"}.join(' ')
|
69
|
+
end
|
70
|
+
|
71
|
+
get '/result' do
|
72
|
+
result = validates do
|
73
|
+
params do
|
74
|
+
optional(:allowed).filled(:str?)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
result.params.map{|k, v| "#{k}=#{v}"}.join(' ')
|
36
78
|
end
|
37
79
|
end
|
data/lib/sinatra/validation.rb
CHANGED
@@ -4,33 +4,53 @@ require "dry-validation"
|
|
4
4
|
module Sinatra
|
5
5
|
module Validation
|
6
6
|
class InvalidParameterError < StandardError
|
7
|
-
|
7
|
+
attr_reader :result
|
8
|
+
|
9
|
+
def initialize(result)
|
10
|
+
@result = result
|
11
|
+
end
|
8
12
|
end
|
9
13
|
|
10
|
-
class Result
|
14
|
+
class Result
|
15
|
+
attr_reader :params, :messages
|
16
|
+
|
17
|
+
def initialize(params)
|
18
|
+
@params = params
|
19
|
+
end
|
20
|
+
|
21
|
+
def with_message(errors)
|
22
|
+
@messages = errors.to_h.map { |key, message| "#{key.to_s} #{message.first}" }
|
23
|
+
self
|
24
|
+
end
|
11
25
|
end
|
12
26
|
|
13
27
|
module Helpers
|
14
28
|
def validates(options = {}, &block)
|
15
|
-
schema = Dry::Validation
|
29
|
+
schema = Class.new(Dry::Validation::Contract, &block).new
|
16
30
|
validation = schema.call(params)
|
31
|
+
result = Result.new(Sinatra::IndifferentHash[validation.to_h])
|
32
|
+
.with_message(validation.errors)
|
17
33
|
|
18
|
-
if
|
19
|
-
|
34
|
+
if options[:filter_unpermitted_params] || settings.filter_unpermitted_params
|
35
|
+
params.replace validation.to_h
|
20
36
|
end
|
21
37
|
|
22
|
-
errors = validation.messages(full: true).values.flatten;
|
23
38
|
if options[:silent] || settings.silent_validation
|
24
|
-
return
|
39
|
+
return result
|
40
|
+
end
|
41
|
+
|
42
|
+
if validation.failure?
|
43
|
+
raise InvalidParameterError.new(result)
|
25
44
|
end
|
26
45
|
|
27
|
-
|
46
|
+
result
|
28
47
|
rescue InvalidParameterError => exception
|
29
48
|
if options[:raise] || settings.raise_sinatra_validation_exception
|
30
49
|
raise exception
|
31
50
|
end
|
32
51
|
|
33
|
-
|
52
|
+
errors = exception.result.messages
|
53
|
+
error = errors.first
|
34
54
|
|
35
55
|
if content_type && content_type.match(mime_type(:json))
|
36
56
|
error = { errors: errors }.to_json
|
@@ -44,6 +64,7 @@ module Sinatra
|
|
44
64
|
app.helpers Validation::Helpers
|
45
65
|
app.set :silent_validation, false
|
46
66
|
app.set :raise_sinatra_validation_exception, false
|
67
|
+
app.set :filter_unpermitted_params, false
|
47
68
|
end
|
48
69
|
end
|
49
70
|
end
|
data/sinatra-validation.gemspec
CHANGED
@@ -21,12 +21,13 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_dependency 'sinatra'
|
25
|
-
spec.add_dependency '
|
26
|
-
spec.add_dependency 'dry-validation'
|
24
|
+
spec.add_dependency 'sinatra', '~> 2.1.0'
|
25
|
+
spec.add_dependency 'rack', '>= 2.0.6'
|
26
|
+
spec.add_dependency 'dry-validation', '~> 1.3'
|
27
27
|
|
28
|
-
spec.add_development_dependency "bundler", "~> 1.14"
|
29
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
30
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
|
+
spec.add_development_dependency "rack-contrib"
|
31
31
|
spec.add_development_dependency "rack-test"
|
32
|
+
spec.add_development_dependency "pry"
|
32
33
|
end
|
metadata
CHANGED
@@ -1,99 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-validation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- IzumiSy
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.0.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.0.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: dry-validation
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.3'
|
48
48
|
type: :runtime
|
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: '
|
54
|
+
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '10.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '3.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '3.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rack-contrib
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rack-test
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: ' "sinatra-validation is a gem to define parameter validation with dry-validation"'
|
112
126
|
email:
|
113
127
|
- beetle-noise@gmx.com
|
@@ -115,9 +129,10 @@ executables: []
|
|
115
129
|
extensions: []
|
116
130
|
extra_rdoc_files: []
|
117
131
|
files:
|
132
|
+
- ".circleci/config.yml"
|
118
133
|
- ".gitignore"
|
119
134
|
- ".rspec"
|
120
|
-
- ".
|
135
|
+
- ".ruby-version"
|
121
136
|
- CODE_OF_CONDUCT.md
|
122
137
|
- Gemfile
|
123
138
|
- LICENSE.txt
|
@@ -136,7 +151,7 @@ homepage: https://github.com/IzumiSy/sinatra-validation
|
|
136
151
|
licenses:
|
137
152
|
- MIT
|
138
153
|
metadata: {}
|
139
|
-
post_install_message:
|
154
|
+
post_install_message:
|
140
155
|
rdoc_options: []
|
141
156
|
require_paths:
|
142
157
|
- lib
|
@@ -151,9 +166,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
166
|
- !ruby/object:Gem::Version
|
152
167
|
version: '0'
|
153
168
|
requirements: []
|
154
|
-
|
155
|
-
|
156
|
-
signing_key:
|
169
|
+
rubygems_version: 3.0.3
|
170
|
+
signing_key:
|
157
171
|
specification_version: 4
|
158
172
|
summary: '"Sinatra extension for request parameter validation"'
|
159
173
|
test_files: []
|