class Sexp
SexpPath
extends Sexp
with Traverse. This adds support for searching S-Expressions
Public Instance Methods
satisfy?(o, data={})
click to toggle source
Extends Sexp
to allow any Sexp
to be used as a SexpPath
matcher
# File lib/sexp_path.rb, line 53 def satisfy?(o, data={}) return false unless o.is_a? Sexp return false unless length == o.length || (last.is_a?(Sexp) && last.greedy?) each_with_index do |child,i| if child.is_a?(Sexp) candidate = child.greedy? ? o[i..-1] : o[i] return false unless child.satisfy?( candidate, data ) else return false unless child == o[i] end end capture_match(o, data) end