Module: Fend::Plugins::ExternalValidation::ParamMethods

Defined in:
lib/fend/plugins/external_validation.rb

Instance Method Summary collapse

Instance Method Details

#validate_with(validation) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/fend/plugins/external_validation.rb', line 63

def validate_with(validation)
  result   = validation.call(value)
  messages = result.class.ancestors.include?(Fend::Result) ? result.messages : result

  return if messages.is_a?(Hash) && flat? && invalid?

  @errors = if @errors.is_a?(Hash) && messages.is_a?(Hash)
              _deep_merge_messages(@errors, messages)
            elsif @errors.is_a?(Array) && messages.is_a?(Array)
              @errors + messages
            else
              messages
            end
end