Class Spec::Matchers::BePredicate

  1. lib/spec/matchers/be.rb
Parent: Spec::Matchers::Be

Public class methods

new (*args, &block)
[show source]
# File lib/spec/matchers/be.rb, line 122
      def initialize(*args, &block)
        @expected = parse_expected(args.shift)
        @args = args
        @block = block
      end

Public instance methods

description ()
[show source]
# File lib/spec/matchers/be.rb, line 151
      def description
        "#{prefix_to_sentence}#{expected_to_sentence}#{args_to_sentence}"
      end
failure_message_for_should ()
[show source]
# File lib/spec/matchers/be.rb, line 143
      def failure_message_for_should
        "expected #{predicate}#{args_to_s} to return true, got #{@result.inspect}"
      end
failure_message_for_should_not ()
[show source]
# File lib/spec/matchers/be.rb, line 147
      def failure_message_for_should_not
        "expected #{predicate}#{args_to_s} to return false, got #{@result.inspect}"
      end
matches? (actual)
[show source]
# File lib/spec/matchers/be.rb, line 128
      def matches?(actual)
        @actual = actual
        begin
          return @result = actual.__send__(predicate, *@args, &@block)
        rescue NameError => predicate_missing_error
          "this needs to be here or rcov will not count this branch even though it's executed in a code example"
        end

        begin
          return @result = actual.__send__(present_tense_predicate, *@args, &@block)
        rescue NameError
          raise predicate_missing_error
        end
      end