rschema 3.0.1.pre2 → 3.0.1.pre3

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
  SHA1:
3
- metadata.gz: f19805cfd6ac29a7633c31b7ac0cc66fdf90b3e1
4
- data.tar.gz: 1d9f3aa2548b2f2328fa4d061885f944261c32e1
3
+ metadata.gz: 69d97f3f15a446af8d934668d8dcaf984ebd5ff3
4
+ data.tar.gz: 8894e813dea20eaa3d54437f59517dc85832612e
5
5
  SHA512:
6
- metadata.gz: 3c210cea14f881ab5777fe8d8da15c05f4034f9e807b291db4e59c64fc345fa56f18cbf72df0eb7121971ce07203f34d18ed1ac4b98c4e5426be58bfa9167652
7
- data.tar.gz: 8f6c6df121f4a89813d74187008fa8a563b494412998138c351e1ae4582b8f3d41aa8a47de8d53cbd2c670d6b5b25fb612e3128d84c1a0533fc9154b1a671de9
6
+ metadata.gz: e188cfabcd694d114e4af241e21bea0573506dd6ae955fed3ce0a886048e1b6c567feaae8170a9ae59276c7712233381092abbe97ca8f23b115ffd8b94a4ace4
7
+ data.tar.gz: 84f09e88cd553e2f8d19d1f5ecc11ac9e31be2a17acd4838c49ef4e508624b72818bd98f8129d925ad7180fb66d6874391715e002c318c6c79892db4cca0b073
@@ -127,7 +127,11 @@ module RSchema
127
127
  end
128
128
 
129
129
  def coerce(value)
130
- default_bools_to_false(symbolize_keys(value))
130
+ [value]
131
+ .map(&method(:symbolize_keys))
132
+ .map(&method(:remove_extraneous_elements))
133
+ .map(&method(:default_bools_to_false))
134
+ .last
131
135
  end
132
136
 
133
137
  def symbolize_keys(hash)
@@ -157,6 +161,19 @@ module RSchema
157
161
  end
158
162
  end
159
163
 
164
+ def remove_extraneous_elements(hash)
165
+ valid_keys = hash_attributes.map(&:key)
166
+ keys_to_remove = hash.keys - valid_keys
167
+
168
+ if keys_to_remove.any?
169
+ hash.dup.tap do |stripped_hash|
170
+ keys_to_remove.each { |k| stripped_hash.delete(k) }
171
+ end
172
+ else
173
+ hash
174
+ end
175
+ end
176
+
160
177
  def default_bools_to_false(hash)
161
178
  # The HTTP standard says that when a form is submitted, all unchecked
162
179
  # check boxes will _not_ be sent to the server. That is, they will not
@@ -1,3 +1,3 @@
1
1
  module RSchema
2
- VERSION = '3.0.1.pre2'
2
+ VERSION = '3.0.1.pre3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rschema
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1.pre2
4
+ version: 3.0.1.pre3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Dalling
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-01 00:00:00.000000000 Z
11
+ date: 2017-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec