avatar

39

Add a few of my matchers for safekeeping by chrisk, 04 Feb, 2008 03:54 AM
Diff this changeset:
require_a_matcher.rb
      module ActiveRecordValidations
  class RequireA
    def initialize(expected)
      @expected = expected
    end

    def matches?(target)
      @target = target
      @target.send("#{@expected}=", nil)
      @target.valid?
      @target.errors.on(@expected) == ActiveRecord::Errors.default_error_messages[:blank]
    end

    def failure_message
      "expected #{@target.inspect} to require presence of #{@expected}"
    end

    def negative_failure_message
      "expected #{@target.inspect} not to require presence of #{expected}"
    end
  end

  def require_a(expected)
    RequireA.new(expected)
  end
  alias_method :require_an, :require_a
end

include ActiveRecordValidations