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 +4 -4
- data/lib/rschema/http_coercer.rb +18 -1
- data/lib/rschema/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69d97f3f15a446af8d934668d8dcaf984ebd5ff3
|
4
|
+
data.tar.gz: 8894e813dea20eaa3d54437f59517dc85832612e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e188cfabcd694d114e4af241e21bea0573506dd6ae955fed3ce0a886048e1b6c567feaae8170a9ae59276c7712233381092abbe97ca8f23b115ffd8b94a4ace4
|
7
|
+
data.tar.gz: 84f09e88cd553e2f8d19d1f5ecc11ac9e31be2a17acd4838c49ef4e508624b72818bd98f8129d925ad7180fb66d6874391715e002c318c6c79892db4cca0b073
|
data/lib/rschema/http_coercer.rb
CHANGED
@@ -127,7 +127,11 @@ module RSchema
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def coerce(value)
|
130
|
-
|
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
|
data/lib/rschema/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2017-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|