Ruby ffast: Difference between revisions

From wikinotes
Line 22: Line 22:
fast --ast some/file.rb            # show ast
fast --ast some/file.rb            # show ast
fast '(const _ _)' some/file.rb    # find matching in some/file.rb
fast '(const _ _)' some/file.rb    # find matching in some/file.rb
</source>
sample patterns
<source lang="ruby">
# an object 'Foo' initialized with the keyword-argument 'two'
'(send (const {nil _} :Foo) :new (hash ... (pair (sym :two)) ))'
Foo.new(one: "abc", two: "def", three: "ghi")
</source>
</source>
</blockquote><!-- usage -->
</blockquote><!-- usage -->

Revision as of 16:07, 1 February 2024

A library and cli tool for searching/matching nodes within ruby's AST.

Documentation

github https://github.com/jonatas/fast

Install

gem install ffast

Usage

fast --ast some/file.rb            # show ast
fast '(const _ _)' some/file.rb    # find matching in some/file.rb

sample patterns

# an object 'Foo' initialized with the keyword-argument 'two'
'(send (const {nil _} :Foo) :new (hash ... (pair (sym :two)) ))'
Foo.new(one: "abc", two: "def", three: "ghi")