Class: HaveAPI::Validators::Confirmation

Inherits:
HaveAPI::Validator show all
Defined in:
lib/haveapi/validators/confirmation.rb

Overview

Checks that two parameters are equal or not equal.

Short form:

string :param, confirm: :other_parameter

Full form:

string :param, confirm: {
param: :other_parameter,
equal: true/false,
message: 'the error message'
}

equal defaults to true.

Instance Attribute Summary

Attributes inherited from HaveAPI::Validator

#message, #params

Instance Method Summary collapse

Methods inherited from HaveAPI::Validator

#initialize, name, #reconfigure, takes, use, use?, #useful?, #validate

Constructor Details

This class inherits a constructor from HaveAPI::Validator

Instance Method Details

#describeObject



34
35
36
37
38
39
40
# File 'lib/haveapi/validators/confirmation.rb', line 34

def describe
  {
    equal: @equal ? true : false,
    parameter: @param,
    message: HaveAPI.localize(@message)
  }
end

#setupObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/haveapi/validators/confirmation.rb', line 21

def setup
  @param = simple? ? take : take(:param)
  @param = @param.to_sym if @param.is_a?(::String)
  @equal = take(:equal, true)
  @message = take(
    :message,
    HaveAPI.message(
      @equal ? 'haveapi.validators.confirmation.same' : 'haveapi.validators.confirmation.different',
      parameter: @param
    )
  )
end

#valid?(v) ⇒ Boolean

Returns:



42
43
44
45
46
47
48
49
# File 'lib/haveapi/validators/confirmation.rb', line 42

def valid?(v)
  if @equal
    v == params[@param]

  else
    v != params[@param]
  end
end