class Sexp::Not

Matches when sub-expression does not match.

This is also available via Matcher#-@.

examples:

s(:a) / s{ not?(s(:b)) } #=> [s(:a)]
s(:a) / s{ -s(:b) }      #=> [s(:a)]
s(:a) / s{ s(not? :a) } #=> []

Attributes

value[R]

The value to negate in the match.

Public Class Methods

new(value) click to toggle source

Creates a Matcher which will match any Sexp that does not match the value

# File lib/sexp_matcher.rb, line 707
def initialize value
  @value = value
end

Public Instance Methods

satisfy?(o) click to toggle source

Satisfied if a o does not match the value

# File lib/sexp_matcher.rb, line 718
def satisfy? o
  !(value.kind_of?(Sexp) ? value.satisfy?(o) : value == o)
end