Method: Focuslight::Validator.validate_multi_key

Defined in:
lib/focuslight/validator.rb

.validate_multi_key(result, params, keys, spec) ⇒ Object



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/focuslight/validator.rb', line 123

def self.validate_multi_key(result, params, keys, spec)
  values = keys.map{|key| params[key.to_sym]}
  if spec.has_key?(:default)
    raise ArgumentError, "multi key validation spec cannot have :default"
  end

  rules = [spec[:rule]].flatten.compact
  errors = []

  rules.each do |rule|
    unless rule.check(*values)
      result.error(keys.map{|s| s.to_s}.join(','), rule.message)
    end
  end
end