stronger_parameters 2.12.1 → 2.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/README.md +1 -1
- data/lib/stronger_parameters/constraints/boolean_constraint.rb +2 -0
- data/lib/stronger_parameters/constraints/integer_constraint.rb +1 -1
- data/lib/stronger_parameters/controller_support/permitted_parameters.rb +5 -9
- data/lib/stronger_parameters/parameters.rb +8 -14
- data/lib/stronger_parameters/version.rb +1 -1
- data/lib/stronger_parameters.rb +0 -1
- metadata +16 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce9ec4b63f79317aa849950dcb6431c4fd0c3a5515abc3eb88aaa170f5680355
|
4
|
+
data.tar.gz: 85cc4373897928267c81214cdf1ca1207a705ee93f32cc647be65c02c0dcbb56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f4bd6274fdf4a44431fbb1cf87e93ba2393c2d0e78c65d3fe6fe4afdde77f1abd6a7ff24e87216cb622ed43795f1900a10f825915f1bcb04f62ef5bd62eca2d
|
7
|
+
data.tar.gz: 97d87e0b66db0f5c125b136385b379f72c4af95e17599c1a3f270ea0268af2f27d3532831b83f84b233492131962f9782ef35513963d1dde53ad73ad89e7e818
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# stronger_parameters
|
2
|
-
|
2
|
+

|
3
3
|
|
4
4
|
This is an extension of `strong_parameters` with added type checking and conversion.
|
5
5
|
|
@@ -6,8 +6,7 @@ module StrongerParameters
|
|
6
6
|
module PermittedParameters
|
7
7
|
def self.included(klass)
|
8
8
|
klass.extend ClassMethods
|
9
|
-
|
10
|
-
klass.public_send method, :permit_parameters
|
9
|
+
klass.before_action :permit_parameters
|
11
10
|
end
|
12
11
|
|
13
12
|
def self.sugar(value)
|
@@ -15,9 +14,7 @@ module StrongerParameters
|
|
15
14
|
when Array
|
16
15
|
ActionController::Parameters.array(*value.map { |v| sugar(v) })
|
17
16
|
when Hash
|
18
|
-
constraints = value.
|
19
|
-
memo[key] = sugar(v)
|
20
|
-
end
|
17
|
+
constraints = value.transform_values { |v| sugar(v) }
|
21
18
|
ActionController::Parameters.map(constraints)
|
22
19
|
else
|
23
20
|
value
|
@@ -63,8 +60,7 @@ module StrongerParameters
|
|
63
60
|
return :skip if for_action == :skip
|
64
61
|
|
65
62
|
# FYI: we should be able to call sugar on the result of deep_merge, but it breaks tests
|
66
|
-
permit_parameters[:all].deep_merge(for_action).
|
67
|
-
each_with_object({}) { |(k, v), a| a[k] = PermittedParameters.sugar(v) }
|
63
|
+
permit_parameters[:all].deep_merge(for_action).transform_values { |v| PermittedParameters.sugar(v) }
|
68
64
|
end
|
69
65
|
|
70
66
|
private
|
@@ -94,7 +90,7 @@ module StrongerParameters
|
|
94
90
|
|
95
91
|
return if log_unpermitted
|
96
92
|
|
97
|
-
|
93
|
+
params.send(:parameters).replace(permitted_params)
|
98
94
|
params.permit!
|
99
95
|
request.params.replace(permitted_params)
|
100
96
|
|
@@ -132,7 +128,7 @@ module StrongerParameters
|
|
132
128
|
end
|
133
129
|
|
134
130
|
def flat_keys(hash)
|
135
|
-
hash = hash.send(:parameters) if
|
131
|
+
hash = hash.send(:parameters) if hash.is_a?(ActionController::Parameters)
|
136
132
|
hash.flat_map { |k, v| v.is_a?(Hash) ? flat_keys(v).map { |x| "#{k}.#{x}" }.push(k) : k }
|
137
133
|
end
|
138
134
|
end
|
@@ -1,12 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'action_pack'
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
else
|
7
|
-
require 'action_controller/base'
|
8
|
-
require 'action_controller/metal/strong_parameters'
|
9
|
-
end
|
4
|
+
require 'action_controller/base'
|
5
|
+
require 'action_controller/metal/strong_parameters'
|
10
6
|
|
11
7
|
require 'stronger_parameters/constraints'
|
12
8
|
require 'stronger_parameters/errors'
|
@@ -113,7 +109,7 @@ module StrongerParameters
|
|
113
109
|
end
|
114
110
|
|
115
111
|
def datetime_iso8601
|
116
|
-
DateTimeIso8601Constraint.new
|
112
|
+
DateTimeIso8601Constraint.new # uncovered
|
117
113
|
end
|
118
114
|
|
119
115
|
def file
|
@@ -143,9 +139,8 @@ module StrongerParameters
|
|
143
139
|
|
144
140
|
hash_filter_without_stronger_parameters(params, other_filter)
|
145
141
|
|
146
|
-
stronger_filter.
|
142
|
+
stronger_filter.each_key do |key|
|
147
143
|
value = fetch(key, nil)
|
148
|
-
result = nil
|
149
144
|
|
150
145
|
if value.nil? && self.class.allow_nil_for_everything
|
151
146
|
params[key] = nil if key?(key)
|
@@ -159,7 +154,7 @@ module StrongerParameters
|
|
159
154
|
elsif constraint.required?
|
160
155
|
result = InvalidValue.new(nil, 'must be present')
|
161
156
|
else
|
162
|
-
next
|
157
|
+
next # uncovered
|
163
158
|
end
|
164
159
|
|
165
160
|
if result.is_a?(InvalidValue)
|
@@ -195,12 +190,11 @@ module StrongerParameters
|
|
195
190
|
# TODO: this is not consistent with the behavior of raising ActionController::UnpermittedParameters
|
196
191
|
# should have the same render vs raise behavior in test/dev ... see permitted_parameters_test.rb
|
197
192
|
rescue_from(StrongerParameters::InvalidParameter) do |e|
|
198
|
-
|
199
|
-
render type => e.message, :status => :bad_request
|
193
|
+
render plain: e.message, status: :bad_request # uncovered
|
200
194
|
end
|
201
195
|
end
|
202
196
|
end
|
203
197
|
end
|
204
198
|
|
205
|
-
ActionController::Parameters.
|
206
|
-
ActionController::Base.
|
199
|
+
ActionController::Parameters.include StrongerParameters::Parameters
|
200
|
+
ActionController::Base.include StrongerParameters::ControllerSupport
|
data/lib/stronger_parameters.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'stronger_parameters/version'
|
3
3
|
require 'action_pack'
|
4
|
-
require 'strong_parameters' if ActionPack::VERSION::MAJOR == 3
|
5
4
|
require 'stronger_parameters/parameters'
|
6
5
|
require 'stronger_parameters/constraints'
|
7
6
|
require 'stronger_parameters/controller_support/permitted_parameters'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stronger_parameters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mick Staugaard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: minitest
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: minitest-rails
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,21 +53,7 @@ dependencies:
|
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: minitest-rg
|
56
|
+
name: maxitest
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
86
58
|
requirements:
|
87
59
|
- - ">="
|
@@ -95,7 +67,7 @@ dependencies:
|
|
95
67
|
- !ruby/object:Gem::Version
|
96
68
|
version: '0'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
70
|
+
name: bump
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
100
72
|
requirements:
|
101
73
|
- - ">="
|
@@ -109,7 +81,7 @@ dependencies:
|
|
109
81
|
- !ruby/object:Gem::Version
|
110
82
|
version: '0'
|
111
83
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
84
|
+
name: single_cov
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
114
86
|
requirements:
|
115
87
|
- - ">="
|
@@ -123,7 +95,7 @@ dependencies:
|
|
123
95
|
- !ruby/object:Gem::Version
|
124
96
|
version: '0'
|
125
97
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
98
|
+
name: rubocop
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
128
100
|
requirements:
|
129
101
|
- - ">="
|
@@ -137,7 +109,7 @@ dependencies:
|
|
137
109
|
- !ruby/object:Gem::Version
|
138
110
|
version: '0'
|
139
111
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
112
|
+
name: mocha
|
141
113
|
requirement: !ruby/object:Gem::Requirement
|
142
114
|
requirements:
|
143
115
|
- - ">="
|
@@ -151,7 +123,7 @@ dependencies:
|
|
151
123
|
- !ruby/object:Gem::Version
|
152
124
|
version: '0'
|
153
125
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
126
|
+
name: forking_test_runner
|
155
127
|
requirement: !ruby/object:Gem::Requirement
|
156
128
|
requirements:
|
157
129
|
- - ">="
|
@@ -170,20 +142,20 @@ dependencies:
|
|
170
142
|
requirements:
|
171
143
|
- - ">="
|
172
144
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
145
|
+
version: '5.0'
|
174
146
|
- - "<"
|
175
147
|
- !ruby/object:Gem::Version
|
176
|
-
version: '
|
148
|
+
version: '7.1'
|
177
149
|
type: :runtime
|
178
150
|
prerelease: false
|
179
151
|
version_requirements: !ruby/object:Gem::Requirement
|
180
152
|
requirements:
|
181
153
|
- - ">="
|
182
154
|
- !ruby/object:Gem::Version
|
183
|
-
version: '
|
155
|
+
version: '5.0'
|
184
156
|
- - "<"
|
185
157
|
- !ruby/object:Gem::Version
|
186
|
-
version: '
|
158
|
+
version: '7.1'
|
187
159
|
description:
|
188
160
|
email:
|
189
161
|
- mick@zendesk.com
|
@@ -218,7 +190,8 @@ files:
|
|
218
190
|
homepage: https://github.com/zendesk/stronger_parameters
|
219
191
|
licenses:
|
220
192
|
- Apache License Version 2.0
|
221
|
-
metadata:
|
193
|
+
metadata:
|
194
|
+
rubygems_mfa_required: 'true'
|
222
195
|
post_install_message:
|
223
196
|
rdoc_options: []
|
224
197
|
require_paths:
|
@@ -227,14 +200,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
227
200
|
requirements:
|
228
201
|
- - ">="
|
229
202
|
- !ruby/object:Gem::Version
|
230
|
-
version: 2.
|
203
|
+
version: 2.5.0
|
231
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
232
205
|
requirements:
|
233
206
|
- - ">="
|
234
207
|
- !ruby/object:Gem::Version
|
235
208
|
version: '0'
|
236
209
|
requirements: []
|
237
|
-
rubygems_version: 3.
|
210
|
+
rubygems_version: 3.1.6
|
238
211
|
signing_key:
|
239
212
|
specification_version: 4
|
240
213
|
summary: Type checking and type casting of parameters for Action Pack
|