sinatra-validation 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a2a3b4d0dc2f17aabdeda813e847a8f0a6c36a0c7012aea5a84180d268a13269
4
- data.tar.gz: c3a8eeef5e8cd2c20d359a742024293b5c8866a8a9574115150e73566446555b
3
+ metadata.gz: aa3a3b73cd49ac6a0b7b6e8aa3c4398e40dae9abb464a59ecc2dec9952ac3f23
4
+ data.tar.gz: 1d4a20b3554ed689d80b4dd524e1fd6aebf6e315c7e5de45c905f3d7faae379c
5
5
  SHA512:
6
- metadata.gz: 03dfa9b1447d46cdd6dceeefab0eacde3238bbe1972d49b4093457ad196bd1f5073046761f461a85c895d95ca0c8ec0863bb53058e0ab06b064fd95726e2105d
7
- data.tar.gz: 673c1b8c9ba84a068e4b6473cc483f06f195e935185999d6de67d565736372b994557b43677ba0f01c59ca2fe3c28b9a93a0de46dc916d8eb14d5002b344b9ec
6
+ metadata.gz: 54e9deffe50aa5f7e3b5a660a84b777881fc1829083a0d8f16c02cd2d204d3072d835f937d4e2013643b258883d49461f3343678e0bda3d10b1ac47a2c5bc195
7
+ data.tar.gz: b542a570e3ea3a817230c759630f49a37b22ce34b8c12e3019377acc0add144446313eac1b23f647e9caac12f6457be5253d1088e37956f62e621b7922c631c6
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.6.6
data/README.md CHANGED
@@ -89,6 +89,13 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
89
89
 
90
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).
91
91
 
92
+ ### Test
93
+
94
+ ```bash
95
+ $ bundle install
96
+ $ rake
97
+ ```
98
+
92
99
  ## Contributing
93
100
 
94
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,65 +1,57 @@
1
1
  PATH
2
- remote: /Users/seiya/Devs/sinatra-validation
2
+ remote: /Users/izumi/Devs/sinatra-validation
3
3
  specs:
4
- sinatra-validation (0.3.0)
4
+ sinatra-validation (0.3.2)
5
5
  dry-validation (~> 1.3)
6
6
  rack (>= 2.0.6)
7
- sinatra (~> 2.0.7)
7
+ sinatra (~> 2.1.0)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- concurrent-ruby (1.1.6)
13
- dry-configurable (0.11.5)
12
+ concurrent-ruby (1.1.9)
13
+ dry-configurable (0.13.0)
14
14
  concurrent-ruby (~> 1.0)
15
- dry-core (~> 0.4, >= 0.4.7)
16
- dry-equalizer (~> 0.2)
17
- dry-container (0.7.2)
15
+ dry-core (~> 0.6)
16
+ dry-container (0.9.0)
18
17
  concurrent-ruby (~> 1.0)
19
- dry-configurable (~> 0.1, >= 0.1.3)
20
- dry-core (0.4.9)
18
+ dry-configurable (~> 0.13, >= 0.13.0)
19
+ dry-core (0.7.1)
21
20
  concurrent-ruby (~> 1.0)
22
- dry-equalizer (0.3.0)
23
- dry-inflector (0.2.0)
24
- dry-initializer (3.0.3)
25
- dry-logic (1.0.6)
21
+ dry-inflector (0.2.1)
22
+ dry-initializer (3.0.4)
23
+ dry-logic (1.2.0)
26
24
  concurrent-ruby (~> 1.0)
27
- dry-core (~> 0.2)
28
- dry-equalizer (~> 0.2)
29
- dry-schema (1.5.0)
25
+ dry-core (~> 0.5, >= 0.5)
26
+ dry-schema (1.8.0)
30
27
  concurrent-ruby (~> 1.0)
31
- dry-configurable (~> 0.8, >= 0.8.3)
32
- dry-core (~> 0.4)
33
- dry-equalizer (~> 0.2)
28
+ dry-configurable (~> 0.13, >= 0.13.0)
29
+ dry-core (~> 0.5, >= 0.5)
34
30
  dry-initializer (~> 3.0)
35
31
  dry-logic (~> 1.0)
36
- dry-types (~> 1.4)
37
- dry-types (1.4.0)
32
+ dry-types (~> 1.5)
33
+ dry-types (1.5.1)
38
34
  concurrent-ruby (~> 1.0)
39
35
  dry-container (~> 0.3)
40
- dry-core (~> 0.4, >= 0.4.4)
41
- dry-equalizer (~> 0.3)
36
+ dry-core (~> 0.5, >= 0.5)
42
37
  dry-inflector (~> 0.1, >= 0.1.2)
43
38
  dry-logic (~> 1.0, >= 1.0.2)
44
- dry-validation (1.5.0)
39
+ dry-validation (1.7.0)
45
40
  concurrent-ruby (~> 1.0)
46
41
  dry-container (~> 0.7, >= 0.7.1)
47
- dry-core (~> 0.4)
48
- dry-equalizer (~> 0.2)
42
+ dry-core (~> 0.5, >= 0.5)
49
43
  dry-initializer (~> 3.0)
50
- dry-schema (~> 1.5)
44
+ dry-schema (~> 1.8, >= 1.8.0)
51
45
  mustermann (1.1.1)
52
46
  ruby2_keywords (~> 0.0.1)
53
- rack (2.2.2)
54
- rack-contrib (2.2.0)
55
- rack (~> 2.0)
56
- rack-protection (2.0.8.1)
47
+ rack (2.2.3)
48
+ rack-protection (2.1.0)
57
49
  rack
58
- ruby2_keywords (0.0.2)
59
- sinatra (2.0.8.1)
50
+ ruby2_keywords (0.0.5)
51
+ sinatra (2.1.0)
60
52
  mustermann (~> 1.0)
61
- rack (~> 2.0)
62
- rack-protection (= 2.0.8.1)
53
+ rack (~> 2.2)
54
+ rack-protection (= 2.1.0)
63
55
  tilt (~> 2.0)
64
56
  tilt (2.0.10)
65
57
 
@@ -67,12 +59,8 @@ PLATFORMS
67
59
  ruby
68
60
 
69
61
  DEPENDENCIES
70
- rack-contrib
71
62
  sinatra
72
63
  sinatra-validation!
73
64
 
74
- RUBY VERSION
75
- ruby 2.6.6p146
76
-
77
65
  BUNDLED WITH
78
66
  1.17.2
data/example/app.rb CHANGED
@@ -58,4 +58,22 @@ class Application < Sinatra::Base
58
58
  halt 500, 'invalid'
59
59
  end
60
60
  end
61
+
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(' ')
78
+ end
61
79
  end
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module Validation
3
- VERSION = "0.3.1"
3
+ VERSION = "0.3.2"
4
4
  end
5
5
  end
@@ -28,7 +28,12 @@ module Sinatra
28
28
  def validates(options = {}, &block)
29
29
  schema = Class.new(Dry::Validation::Contract, &block).new
30
30
  validation = schema.call(params)
31
- result = Result.new(params).with_message(validation.errors)
31
+ result = Result.new(Sinatra::IndifferentHash[validation.to_h])
32
+ .with_message(validation.errors)
33
+
34
+ if options[:filter_unpermitted_params] || settings.filter_unpermitted_params
35
+ params.replace validation.to_h
36
+ end
32
37
 
33
38
  if options[:silent] || settings.silent_validation
34
39
  return result
@@ -37,6 +42,8 @@ module Sinatra
37
42
  if validation.failure?
38
43
  raise InvalidParameterError.new(result)
39
44
  end
45
+
46
+ result
40
47
  rescue InvalidParameterError => exception
41
48
  if options[:raise] || settings.raise_sinatra_validation_exception
42
49
  raise exception
@@ -57,6 +64,7 @@ module Sinatra
57
64
  app.helpers Validation::Helpers
58
65
  app.set :silent_validation, false
59
66
  app.set :raise_sinatra_validation_exception, false
67
+ app.set :filter_unpermitted_params, false
60
68
  end
61
69
  end
62
70
  end
@@ -21,7 +21,7 @@ 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', '~> 2.0.7'
24
+ spec.add_dependency 'sinatra', '~> 2.1.0'
25
25
  spec.add_dependency 'rack', '>= 2.0.6'
26
26
  spec.add_dependency 'dry-validation', '~> 1.3'
27
27
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-validation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
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: 2020-05-03 00:00:00.000000000 Z
11
+ date: 2022-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.7
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: 2.0.7
26
+ version: 2.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rack
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -132,6 +132,7 @@ files:
132
132
  - ".circleci/config.yml"
133
133
  - ".gitignore"
134
134
  - ".rspec"
135
+ - ".ruby-version"
135
136
  - CODE_OF_CONDUCT.md
136
137
  - Gemfile
137
138
  - LICENSE.txt
@@ -150,7 +151,7 @@ homepage: https://github.com/IzumiSy/sinatra-validation
150
151
  licenses:
151
152
  - MIT
152
153
  metadata: {}
153
- post_install_message:
154
+ post_install_message:
154
155
  rdoc_options: []
155
156
  require_paths:
156
157
  - lib
@@ -166,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
167
  version: '0'
167
168
  requirements: []
168
169
  rubygems_version: 3.0.3
169
- signing_key:
170
+ signing_key:
170
171
  specification_version: 4
171
172
  summary: '"Sinatra extension for request parameter validation"'
172
173
  test_files: []