Class: Mongoid::Matchers::Validations::ValidateUniquenessMatcher

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

Instance Method Summary collapse

Methods inherited from HaveValidationMatcher

#failure_message, #negative_failure_message, #with_message

Methods included from Helpers

#class_of, #to_sentence

Constructor Details

#initialize(field) ⇒ ValidateUniquenessMatcher

Returns a new instance of ValidateUniquenessMatcher.



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

def initialize(field)
  super(field, :uniqueness)
end

Instance Method Details

#case_insensitiveObject



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

def case_insensitive
  @case_insensitive = true
  self
end

#descriptionObject



28
29
30
31
32
33
# File 'lib/matchers/validations/uniqueness.rb', line 28

def description
  desc = []
  desc << " scoped to #{to_sentence(@scope)}" if @scope
  desc << ' allowing case insensitive values' if @case_insensitive
  super << desc.to_sentence
end

#matches?(subject) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
# File 'lib/matchers/validations/uniqueness.rb', line 19

def matches?(subject)
  return false unless @result = super(subject)

  check_scope if @scope
  check_case_sensivity if @case_insensitive

  @result
end

#scoped_to(*scope) ⇒ Object



14
15
16
17
# File 'lib/matchers/validations/uniqueness.rb', line 14

def scoped_to(*scope)
  @scope = [scope].flatten.map(&:to_s)
  self
end