Class: Mongoid::Matchers::Validations::ValidateInclusionOfMatcher

Inherits:
HaveValidationMatcher show all
Defined in:
lib/matchers/validations/inclusion_of.rb

Instance Method Summary collapse

Methods inherited from HaveValidationMatcher

#failure_message_for_should, #failure_message_for_should_not

Constructor Details

#initialize(name) ⇒ ValidateInclusionOfMatcher

Returns a new instance of ValidateInclusionOfMatcher.



5
6
7
# File 'lib/matchers/validations/inclusion_of.rb', line 5

def initialize(name)
  super(name, :inclusion)
end

Instance Method Details

#descriptionObject



30
31
32
33
34
# File 'lib/matchers/validations/inclusion_of.rb', line 30

def description
  options_desc = []
  options_desc << " allowing the ff. values: #{@allowed_values}" if @allowed_values                
  super << options_desc.to_sentence
end

#matches?(actual) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/matchers/validations/inclusion_of.rb', line 14

def matches?(actual)
  return false unless result = super(actual)
  
  if @allowed_values
    not_allowed_values = @allowed_values - @validator.options[:in]
    if not_allowed_values.empty?
      @positive_result_message = @positive_result_message << " allowing all values mentioned"
    else
      @negative_result_message = @negative_result_message << " not allowing the following the ff. values: #{not_allowed_values.inspect}"
      result = false
    end
  end
  
  result          
end

#to_allow(*values) ⇒ Object



9
10
11
12
# File 'lib/matchers/validations/inclusion_of.rb', line 9

def to_allow(*values)
  @allowed_values = [values].flatten
  self
end