Skip to content
This repository has been archived by the owner on Feb 6, 2024. It is now read-only.

Brings back the Arel::Visitors::DepthFirst class for when you need to traverse the Arel AST.

License

Notifications You must be signed in to change notification settings

tidelift/activerecord-arel_depth_first

Repository files navigation

Active Record Arel DepthFirst Visitor

This gem re-introduces Arel code that was removed from Rails 6.1: rails/rails#36492 . The code existed in the arel gem from 4.0.0 to 9.0.0, and the rails gem from 4.0.0 to 6.0.0.

It provides a DepthFirst visitor for Arel that allows you to traverse the Arel AST, e.g. for visualizations.

Installation

Include this gem into your Gemfile:

gem 'activerecord-arel_depth_first'

Example

This visitor makes the Arel AST enumerable, so you can do a depth-first iteration over it:

User.some_arbitrary_scope.arel.ast.each do |node|
  case node
  when Arel::Table
    # do something for table nodes
  when Arel::Nodes::Equality
    # do something for equality nodes
  else 
    # and so on ...
  end
end

License

activerecord-arel_depth_first is released under the MIT License.

About

Brings back the Arel::Visitors::DepthFirst class for when you need to traverse the Arel AST.

Resources

License

Stars

Watchers

Forks

Packages

No packages published