diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-11-30 11:06:09 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-11-30 11:06:09 -0800 |
commit | f62a7267c551d216297bec9f0496738b8e27dcae (patch) | |
tree | dbd7ea511e1ee6519c065e01701cc6bacc88b132 /lib/arel | |
parent | e02a914fb0b8b7baac1b231badeba49e991a03b9 (diff) | |
download | rails-f62a7267c551d216297bec9f0496738b8e27dcae.tar.gz rails-f62a7267c551d216297bec9f0496738b8e27dcae.tar.bz2 rails-f62a7267c551d216297bec9f0496738b8e27dcae.zip |
adding deprecated support for walking ancestor trees
Diffstat (limited to 'lib/arel')
-rw-r--r-- | lib/arel/visitors/visitor.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/arel/visitors/visitor.rb b/lib/arel/visitors/visitor.rb index 510d50399b..b0d16ffe4e 100644 --- a/lib/arel/visitors/visitor.rb +++ b/lib/arel/visitors/visitor.rb @@ -13,6 +13,13 @@ module Arel def visit object send DISPATCH[object.class], object + rescue NoMethodError + warn "visiting #{object.class} via superclass, this will be removed in arel 2.2.0" if $VERBOSE + superklass = object.class.ancestors.find { |klass| + respond_to?(DISPATCH[klass], true) + } + DISPATCH[object.class] = DISPATCH[superklass] + retry end end end |