aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors/reduce.rb
Commit message (Collapse)AuthorAgeFilesLines
* Use class objects rather than strings for the dispatch cacheSean Griffin2014-11-181-4/+4
| | | | | | | | The only reason we're using strings is to pre-populate the cache, but `Class#name` returns a new string instance on every call. This is a pretty major source of memory usage. We don't technically need to pre-populate the cache, and not doing so allows us to go back to using cache objects
* move the dispatch table to be per-instanceAaron Patterson2014-09-221-4/+4
| | | | | | | visitors are not shared among threads, so any mutations to the cache should be OK. The cache is also pre-populated on construction, but we should pull that out so we can share the cache among visitors in the future.
* push reduction visitors to a reduction base classAaron Patterson2014-04-081-0/+25
this lets our old depth first and dot visitors to work normally