stronger_parameters 2.12.1 → 2.16.0

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: 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