class SexpPath::SexpResult

Wraps the results of a SexpPath query. The matching Sexp is placed in SexpResult#sexp. Any named captures will be available with SexpResult#[].

For instance:

res = s(:a) / Q?{ s( _ % 'name') }

res.first.sexp == s(:a) 
res.first['name'] == :a

Attributes

sexp[RW]

Public Class Methods

new(sexp, data={}) click to toggle source
# File lib/sexp_path/sexp_result.rb, line 16
def initialize(sexp, data={})
  @sexp = sexp
  merge! data
end

Public Instance Methods

/(pattern, data={})
Alias for: search
inspect() click to toggle source
# File lib/sexp_path/sexp_result.rb, line 37
def inspect
  "#{@sexp} #{super}"
end
to_s() click to toggle source
# File lib/sexp_path/sexp_result.rb, line 28
def to_s
  if empty?
    @sexp.to_s
  else
    matches = self.map{|k,v| "#{k}:#{v}"}.join(", ")
    "#{@sexp} [#{matches}]"
  end
end