rschema 3.0.1.pre2 → 3.0.1.pre3

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