Module: Remockable::ActiveModel::Helpers

Extended by:
ActiveSupport::Concern
Includes:
Helpers
Defined in:
lib/remockable/active_model/helpers.rb

Constant Summary collapse

CONDITIONALS =
[:if, :unless]

Instance Method Summary collapse

Methods included from Helpers

#attribute, #matches?, #options, #unsupported_options, #valid_options, #validate_options!

Instance Method Details

#conditionals_match(validator) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/remockable/active_model/helpers.rb', line 24

def conditionals_match(validator)
  CONDITIONALS.all? do |option|
    expected_value = options[option]

    if !expected_value.nil? && expected_value.is_a?(Symbol)
      validator.options[option] == expected_value
    elsif !expected_value.nil?
      validator.options[option].call(actual) == true
    else
      true
    end
  end
end

#options_match(validator, options = self.options) ⇒ Object



19
20
21
22
# File 'lib/remockable/active_model/helpers.rb', line 19

def options_match(validator, options=self.options)
  actual = validator.options.slice(*(options.keys - CONDITIONALS))
  actual == options.except(*CONDITIONALS)
end

#validator_for(attribute) ⇒ Object



13
14
15
16
17
# File 'lib/remockable/active_model/helpers.rb', line 13

def validator_for(attribute)
  subject.class.validators_on(attribute).detect do |validator|
    validator.kind == type
  end
end