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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49ff0e22a205c3fa4f63f7eb67d4b03d99712581737de01a07a6a7f7b5170a8c
4
- data.tar.gz: c0754ea977e118cad81cbccb13b437e133718c4bc10a5267395021865eca2fc4
3
+ metadata.gz: ce9ec4b63f79317aa849950dcb6431c4fd0c3a5515abc3eb88aaa170f5680355
4
+ data.tar.gz: 85cc4373897928267c81214cdf1ca1207a705ee93f32cc647be65c02c0dcbb56
5
5
  SHA512:
6
- metadata.gz: a35e1e69c80a3dcf8ac80fa9fd954a2c41bc6fe86d1025c4156e41904c5a2b1302d048d3c92a01b5dbd2110b72e21aa1c2a58082ed3e0818aaf03c52dddc200f
7
- data.tar.gz: 4f7418f01c05f3d777d09d32bec2423446395932b949e8e11b01f6dd0f0d058da16b2bda08fbad84588b0d6214f823aae3ed9420710b84bf6025ab15ec8316f5
6
+ metadata.gz: 3f4bd6274fdf4a44431fbb1cf87e93ba2393c2d0e78c65d3fe6fe4afdde77f1abd6a7ff24e87216cb622ed43795f1900a10f825915f1bcb04f62ef5bd62eca2d
7
+ data.tar.gz: 97d87e0b66db0f5c125b136385b379f72c4af95e17599c1a3f270ea0268af2f27d3532831b83f84b233492131962f9782ef35513963d1dde53ad73ad89e7e818
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # stronger_parameters
2
- [![Build Status](https://travis-ci.org/zendesk/stronger_parameters.svg?branch=master)](https://travis-ci.org/zendesk/stronger_parameters)
2
+ ![CI](https://github.com/zendesk/stronger_parameters/workflows/CI/badge.svg)
3
3
 
4
4
  This is an extension of `strong_parameters` with added type checking and conversion.
5
5
 
@@ -7,6 +7,8 @@ module StrongerParameters
7
7
  FALSE_VALUES = [false, 'false', '0', 0].freeze
8
8
 
9
9
  def value(v)
10
+ v = v.downcase if v.is_a? String
11
+
10
12
  return true if TRUE_VALUES.include?(v)
11
13
 
12
14
  return false if FALSE_VALUES.include?(v)
@@ -6,7 +6,7 @@ module StrongerParameters
6
6
  def value(v)
7
7
  if v.is_a?(Integer)
8
8
  return v
9
- elsif v.is_a?(String) && v =~ /\A-?\d+\Z/
9
+ elsif v.is_a?(String) && v.strip =~ /\A-?\d+\Z/
10
10
  return v.to_i
11
11
  end
12
12
 
@@ -6,8 +6,7 @@ module StrongerParameters
6
6
  module PermittedParameters
7
7
  def self.included(klass)
8
8
  klass.extend ClassMethods
9
- method = (klass.respond_to?(:before_action) ? :before_action : :before_filter)
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.each_with_object({}) do |(key, v), memo|
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
- (ActionPack::VERSION::MAJOR >= 5 ? params.send(:parameters) : params).replace(permitted_params)
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 ActionPack::VERSION::MAJOR >= 5 && hash.is_a?(ActionController::Parameters)
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
- if ActionPack::VERSION::MAJOR == 3
5
- require 'action_controller/parameters'
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.keys.each do |key|
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
- type = (ActiveSupport::VERSION::MAJOR < 5 ? :text : :plain)
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.send :include, StrongerParameters::Parameters
206
- ActionController::Base.send :include, StrongerParameters::ControllerSupport
199
+ ActionController::Parameters.include StrongerParameters::Parameters
200
+ ActionController::Base.include StrongerParameters::ControllerSupport
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module StrongerParameters
3
- VERSION = '2.12.1'
3
+ VERSION = '2.16.0'
4
4
  end
@@ -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.12.1
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: 2019-06-19 00:00:00.000000000 Z
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: minitest-around
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: wwtd
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: bump
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: single_cov
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: rubocop
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: mocha
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: '3.2'
145
+ version: '5.0'
174
146
  - - "<"
175
147
  - !ruby/object:Gem::Version
176
- version: '6.1'
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: '3.2'
155
+ version: '5.0'
184
156
  - - "<"
185
157
  - !ruby/object:Gem::Version
186
- version: '6.1'
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.4.0
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.0.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