Repository is archived
No release in over a year
A DepthFirst visitor for Arel (removed from Rails in 6.1).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 6.1.0, < 7.1.0
>= 0
 Project Readme

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.