class Grape::Validations::MutualExclusionValidator

Attributes

params[R]

Public Instance Methods

validate!(params) click to toggle source
# File lib/grape/validations/mutual_exclusion.rb, line 6
def validate!(params)
  @params = params
  if two_or_more_exclusive_params_are_present
    raise Grape::Exceptions::Validation, param: "#{keys_in_common.map(&:to_sym)}", message_key: :mutual_exclusion
  end
  params
end

Private Instance Methods

keys_in_common() click to toggle source
# File lib/grape/validations/mutual_exclusion.rb, line 20
def keys_in_common
  attrs.map(&:to_s) & params.stringify_keys.keys
end
two_or_more_exclusive_params_are_present() click to toggle source
# File lib/grape/validations/mutual_exclusion.rb, line 16
def two_or_more_exclusive_params_are_present
  keys_in_common.length > 1
end