Sha256: 7701e10e489ce4be25f4064033c158a1a954829372edad255d3c05d3cc3def32
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
module Spec module Matchers class OperatorMatcher def initialize(actual) @actual = actual end [:==, :===, :=~, :>, :<, :>=, :<=].each do |op| define_method(op) do |exp| eval_match @actual, op, exp end end def eval_match(actual, operator, expected) @operator = operator @expected = expected __delegate_operator actual, operator, expected end def fail_with_message(message) Spec::Expectations.fail_with message, @expected, @actual end end class PositiveOperatorMatcher < OperatorMatcher def __delegate_operator(actual, operator, expected) if actual.__send__ operator, expected true else fail_with_message "expected: #{expected.inspect}, but got: #{actual.inspect} (using #{operator})" end end end class NegativeOperatorMatcher < OperatorMatcher def __delegate_operator(actual, operator, expected) if actual.__send__ operator, expected fail_with_message "expected not: #{expected.inspect}, and got: #{actual.inspect} (using #{operator})" else true end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
opal-0.3.2 | gems/ospec/lib/ospec/matchers/operator_matcher.rb |
opal-0.3.1 | gems/ospec/lib/ospec/matchers/operator_matcher.rb |
opal-0.3.0 | gems/ospec/lib/ospec/matchers/operator_matcher.rb |