aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-07-20 14:37:53 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-07-20 14:37:53 -0700
commit692566733e4442947c6b6faa2f5a1b13940744d0 (patch)
treec93c9d3498647280a1dced4dc77973f2874ac13a /lib
parent36c8cb43ffc2d1bc217cadf4341aa4b0ea6df992 (diff)
downloadrails-692566733e4442947c6b6faa2f5a1b13940744d0.tar.gz
rails-692566733e4442947c6b6faa2f5a1b13940744d0.tar.bz2
rails-692566733e4442947c6b6faa2f5a1b13940744d0.zip
delegate and call cached connection
Diffstat (limited to 'lib')
-rw-r--r--lib/arel/engines/sql/engine.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/arel/engines/sql/engine.rb b/lib/arel/engines/sql/engine.rb
index 917da0e93e..07940c6ef1 100644
--- a/lib/arel/engines/sql/engine.rb
+++ b/lib/arel/engines/sql/engine.rb
@@ -4,10 +4,11 @@ module Arel
def initialize(ar = nil)
@ar = ar
+ @connection = nil
end
def connection
- @ar ? @ar.connection : nil
+ @connection ||= @ar && @ar.connection
end
def adapter_name
@@ -22,9 +23,9 @@ module Arel
def method_missing(method, *args)
if block_given?
- @ar.connection.send(method, *args) { |*block_args| yield(*block_args) }
+ connection.send(method, *args) { |*block_args| yield(*block_args) }
else
- @ar.connection.send(method, *args)
+ connection.send(method, *args)
end
end