class MiniTest::Matchers::ActiveModel::ValidateUniquenessMatcher
Public Class Methods
new(attr)
click to toggle source
Calls superclass method
# File lib/matchers/validate_uniqueness_matcher.rb, line 22 def initialize attr @scope = nil @case_insensitive = false super attr, :uniqueness end
Public Instance Methods
case_insensitive()
click to toggle source
# File lib/matchers/validate_uniqueness_matcher.rb, line 34 def case_insensitive @case_insensitive = true self end
description()
click to toggle source
Calls superclass method
# File lib/matchers/validate_uniqueness_matcher.rb, line 48 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)
click to toggle source
Calls superclass method
# File lib/matchers/validate_uniqueness_matcher.rb, line 39 def matches? subject return false unless @result = super(subject) check_scope if @scope check_case_sensivity if @case_insensitive @result end
scoped_to(*scope)
click to toggle source
# File lib/matchers/validate_uniqueness_matcher.rb, line 29 def scoped_to *scope @scope = [scope].flatten.map(&:to_s) self end
Private Instance Methods
check_case_sensivity()
click to toggle source
# File lib/matchers/validate_uniqueness_matcher.rb, line 69 def check_case_sensivity if @validator.options[:case_sensitive] == false @positive_message << ' with case insensitive values' else @negative_message << ' without case insensitive values' @result = false end end
check_scope()
click to toggle source
# File lib/matchers/validate_uniqueness_matcher.rb, line 57 def check_scope actual_scope = [@validator.options[:scope]].flatten.map(&:to_s) message = " scoped to #{to_sentence(actual_scope)}" if actual_scope == @scope @positive_message << message else @negative_message << message @result = false end end