aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMyron Marston <myron.marston@gmail.com>2010-06-23 19:59:38 -0700
committerMyron Marston <myron.marston@gmail.com>2010-06-23 20:00:49 -0700
commit662b99528218ba7b86d45652438404012f8c4b07 (patch)
treeab791e2ddd2868270ed8e37ed1f4773fb121a16f
parent93708c2056089dce298ae3d87de87d2625164978 (diff)
downloadrails-662b99528218ba7b86d45652438404012f8c4b07.tar.gz
rails-662b99528218ba7b86d45652438404012f8c4b07.tar.bz2
rails-662b99528218ba7b86d45652438404012f8c4b07.zip
Allow externally defined AR adapters to define their own compiler.
-rw-r--r--lib/arel/engines/sql/relations/table.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/arel/engines/sql/relations/table.rb b/lib/arel/engines/sql/relations/table.rb
index 7940fd781f..f09457f65a 100644
--- a/lib/arel/engines/sql/relations/table.rb
+++ b/lib/arel/engines/sql/relations/table.rb
@@ -20,10 +20,16 @@ module Arel
if @engine.connection
begin
require "arel/engines/sql/compilers/#{@engine.adapter_name.downcase}_compiler"
- @@tables ||= engine.tables
rescue LoadError
- raise "#{@engine.adapter_name} is not supported by Arel."
+ begin
+ # try to load an externally defined compiler, in case this adapter has defined the compiler on its own.
+ require "#{@engine.adapter_name.downcase}/arel_compiler"
+ rescue LoadError
+ raise "#{@engine.adapter_name} is not supported by Arel."
+ end
end
+
+ @@tables ||= engine.tables
end
end