lib/rest_model/key/property/sender.rb in rest_model-0.1.19 vs lib/rest_model/key/property/sender.rb in rest_model-0.1.20

- old
+ new

@@ -3,12 +3,13 @@ module Sender def to_source!(value, resource, options = {}) source_value = begin translation.translates_to_source? ? translation.translate_to_source(value, resource) : serializer.desserialize(value) + rescue TranslationError, SerializationError => error - raise error if options[:fail] + raise error if options[:fail] and validates?(value) end source = {} path = source_path @@ -19,9 +20,15 @@ else source.merge!(source_value) end source + end + + private + + def validates?(value) + (self.options[:validate_if_present] and !value.nil?) or self.options[:validate] end end end end