lib/grape/validations/validators/coerce.rb in grape-0.10.1 vs lib/grape/validations/validators/coerce.rb in grape-0.11.0
- old
+ new
@@ -27,12 +27,15 @@
def _valid_single_type?(klass, val)
# allow nil, to ignore when a parameter is absent
return true if val.nil?
if klass == Virtus::Attribute::Boolean
- val.is_a?(TrueClass) || val.is_a?(FalseClass)
+ val.is_a?(TrueClass) || val.is_a?(FalseClass) || (val.is_a?(String) && val.empty?)
elsif klass == Rack::Multipart::UploadedFile
val.is_a?(Hashie::Mash) && val.key?(:tempfile)
+ elsif [DateTime, Date, Numeric].any?{ |vclass| vclass >= klass }
+ return true if val.is_a?(String) && val.empty?
+ val.is_a?(klass)
else
val.is_a?(klass)
end
end