Class: Grape::Validations::Validators::ExactlyOneOfValidator

Inherits:
MultipleParamsBase show all
Defined in:
lib/grape/validations/validators/exactly_one_of_validator.rb

Instance Attribute Summary

Attributes inherited from Base

#attrs

Instance Method Summary collapse

Methods inherited from MultipleParamsBase

#validate!

Methods inherited from Base

default_message_key, #fail_fast?, inherited, new, #validate, #validate!

Constructor Details

#initialize(attrs, options, required, scope, opts) ⇒ ExactlyOneOfValidator

Returns a new instance of ExactlyOneOfValidator.



7
8
9
10
11
# File 'lib/grape/validations/validators/exactly_one_of_validator.rb', line 7

def initialize(attrs, options, required, scope, opts)
  super
  @exactly_one_exception_message = message(:exactly_one)
  @mutual_exclusion_exception_message = message(:mutual_exclusion)
end

Instance Method Details

#validate_params!(params) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/grape/validations/validators/exactly_one_of_validator.rb', line 13

def validate_params!(params)
  known_keys = all_keys
  keys = keys_in_common(params, known_keys)
  return if keys.length == 1

  validation_error!(known_keys, @exactly_one_exception_message) if keys.empty?
  validation_error!(keys, @mutual_exclusion_exception_message)
end