examples/print_methods.rb in sexp_path-0.4.0 vs examples/print_methods.rb in sexp_path-0.5.0

- old
+ new

@@ -1,28 +1,26 @@ require 'rubygems' require File.dirname(__FILE__) + '/../lib/sexp_path' -require 'parse_tree' +require 'ruby_parser' path = ARGV.shift if !path puts "Prints classes and methods in a file" puts "usage:" puts " ruby print_methods.rb <path>" exit end code = File.read(path) -sexp = Sexp.from_array(ParseTree.new.parse_tree_for_string(code, path)) +sexp = RubyParser.new.parse(code, path) -class_query = Q?{ s(:class, atom % 'class_name', _, _) } -method_query = Q?{ s(:defn, atom % 'method_name', _ ) } +# Use the ruby pattern matcher: +results = sexp / R?{ _class } / R?{ _method } -results = sexp / class_query / method_query - puts path puts "-" * 80 results.each do |sexp_result| - class_name = sexp_result['class_name'] - method_name = sexp_result['method_name'] + class_name = sexp_result['class'] + method_name = sexp_result['method'] puts "#{class_name}##{method_name}" end \ No newline at end of file