class Shoulda::Matchers::ActiveModel::ValidationMatcher
@private
def allow_value_matcher(value, message)
def allow_value_matcher(value, message) matcher = AllowValueMatcher.new(value).for(@attribute). with_message(message) if defined?(@context) matcher.on(@context) end if strict? matcher.strict end matcher end
def allows_value_of(value, message = nil, &block)
def allows_value_of(value, message = nil, &block) allow = allow_value_matcher(value, message) yield allow if block_given? if allow.matches?(@subject) @failure_message_when_negated = allow.failure_message_when_negated true else @failure_message = allow.failure_message false end end
def disallow_value_matcher(value, message)
def disallow_value_matcher(value, message) matcher = DisallowValueMatcher.new(value).for(@attribute). with_message(message) if defined?(@context) matcher.on(@context) end if strict? matcher.strict end matcher end
def disallows_value_of(value, message = nil, &block)
def disallows_value_of(value, message = nil, &block) disallow = disallow_value_matcher(value, message) yield disallow if block_given? if disallow.matches?(@subject) @failure_message_when_negated = disallow.failure_message_when_negated true else @failure_message = disallow.failure_message false end end
def failure_message_when_negated
def failure_message_when_negated @failure_message_when_negated || @failure_message end
def initialize(attribute)
def initialize(attribute) @attribute = attribute @strict = false @failure_message = nil @failure_message_when_negated = nil end
def matches?(subject)
def matches?(subject) @subject = subject false end
def on(context)
def on(context) @context = context self end
def strict
def strict @strict = true self end
def strict?
def strict? @strict end