From fc5f409d1aadf6053206ee09fd59650cf1e478d9 Mon Sep 17 00:00:00 2001 From: Adam Greene Date: Fri, 20 May 2016 14:12:56 -0700 Subject: [PATCH 1/2] prevent coercer from throwing unnecessary exceptions --- lib/virtus/attribute/coercer.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/virtus/attribute/coercer.rb b/lib/virtus/attribute/coercer.rb index a37fc0dd..43f7a2a5 100644 --- a/lib/virtus/attribute/coercer.rb +++ b/lib/virtus/attribute/coercer.rb @@ -29,6 +29,7 @@ def initialize(type, coercers) # # @api private def call(value) + return value if value.nil? coercers[value.class].public_send(method, value) rescue ::Coercible::UnsupportedCoercion value From d7d32495c64c8942b26671c03661b6eaf63158fe Mon Sep 17 00:00:00 2001 From: Adam Greene Date: Fri, 20 May 2016 14:54:53 -0700 Subject: [PATCH 2/2] changing location of nil check --- lib/virtus/attribute/coercer.rb | 1 - lib/virtus/attribute/nullify_blank.rb | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/virtus/attribute/coercer.rb b/lib/virtus/attribute/coercer.rb index 43f7a2a5..a37fc0dd 100644 --- a/lib/virtus/attribute/coercer.rb +++ b/lib/virtus/attribute/coercer.rb @@ -29,7 +29,6 @@ def initialize(type, coercers) # # @api private def call(value) - return value if value.nil? coercers[value.class].public_send(method, value) rescue ::Coercible::UnsupportedCoercion value diff --git a/lib/virtus/attribute/nullify_blank.rb b/lib/virtus/attribute/nullify_blank.rb index e43cf3b2..4e7494fb 100644 --- a/lib/virtus/attribute/nullify_blank.rb +++ b/lib/virtus/attribute/nullify_blank.rb @@ -9,7 +9,7 @@ module NullifyBlank # # @api public def coerce(input) - output = super + output = input.nil? ? nil : super if !value_coerced?(output) && input.to_s.empty? nil