Class: Shoulda::ActiveRecord::Matchers::ValidateUniquenessOfMatcher
Overview
Instance Attribute Summary
#failure_message
Instance Method Summary
collapse
Methods included from Helpers
#default_error_message, #pretty_error_messages
#negative_failure_message
Constructor Details
Returns a new instance of ValidateUniquenessOfMatcher.
40
41
42
|
# File 'lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb', line 40
def initialize(attribute)
@attribute = attribute
end
|
Instance Method Details
#case_insensitive ⇒ Object
54
55
56
57
|
# File 'lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb', line 54
def case_insensitive
@case_insensitive = true
self
end
|
#description ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb', line 59
def description
result = "require "
result << "case sensitive " unless @case_insensitive
result << "unique value for #{@attribute}"
result << " scoped to #{@scopes.join(', ')}" unless @scopes.blank?
result
end
|
#matches?(subject) ⇒ Boolean
67
68
69
70
71
72
73
74
|
# File 'lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb', line 67
def matches?(subject)
@subject = subject.class.new
@expected_message ||= :taken
find_existing &&
set_scoped_attributes &&
validate_attribute &&
validate_after_scope_change
end
|
#scoped_to(*scopes) ⇒ Object
44
45
46
47
|
# File 'lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb', line 44
def scoped_to(*scopes)
@scopes = [*scopes].flatten
self
end
|
#with_message(message) ⇒ Object
49
50
51
52
|
# File 'lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb', line 49
def with_message(message)
@expected_message = message
self
end
|