diff options
Diffstat (limited to 'spec/mspec/lib/mspec/matchers/base.rb')
-rw-r--r-- | spec/mspec/lib/mspec/matchers/base.rb | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/spec/mspec/lib/mspec/matchers/base.rb b/spec/mspec/lib/mspec/matchers/base.rb index 94d3b71e55..d9d7f6fec0 100644 --- a/spec/mspec/lib/mspec/matchers/base.rb +++ b/spec/mspec/lib/mspec/matchers/base.rb @@ -16,15 +16,24 @@ class SpecPositiveOperatorMatcher < BasicObject end def ==(expected) - method_missing(:==, expected) + result = @actual == expected + unless result + ::SpecExpectation.fail_single_arg_predicate(@actual, :==, expected, result, "to be truthy") + end end def !=(expected) - method_missing(:!=, expected) + result = @actual != expected + unless result + ::SpecExpectation.fail_single_arg_predicate(@actual, :!=, expected, result, "to be truthy") + end end def equal?(expected) - method_missing(:equal?, expected) + result = @actual.equal?(expected) + unless result + ::SpecExpectation.fail_single_arg_predicate(@actual, :equal?, expected, result, "to be truthy") + end end def method_missing(name, *args, &block) @@ -41,15 +50,24 @@ class SpecNegativeOperatorMatcher < BasicObject end def ==(expected) - method_missing(:==, expected) + result = @actual == expected + if result + ::SpecExpectation.fail_single_arg_predicate(@actual, :==, expected, result, "to be falsy") + end end def !=(expected) - method_missing(:!=, expected) + result = @actual != expected + if result + ::SpecExpectation.fail_single_arg_predicate(@actual, :!=, expected, result, "to be falsy") + end end def equal?(expected) - method_missing(:equal?, expected) + result = @actual.equal?(expected) + if result + ::SpecExpectation.fail_single_arg_predicate(@actual, :equal?, expected, result, "to be falsy") + end end def method_missing(name, *args, &block) |