aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/arel/algebra/extensions/class.rb2
-rw-r--r--lib/arel/session.rb12
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/arel/algebra/extensions/class.rb b/lib/arel/algebra/extensions/class.rb
index 56cad3aaa8..d0894931da 100644
--- a/lib/arel/algebra/extensions/class.rb
+++ b/lib/arel/algebra/extensions/class.rb
@@ -2,7 +2,7 @@ module Arel
module ClassExtensions
def attributes(*attrs)
@attributes = attrs
- attr_reader *attrs
+ attr_reader(*attrs)
end
def deriving(*methods)
diff --git a/lib/arel/session.rb b/lib/arel/session.rb
index cf04e8a93a..d844cd7423 100644
--- a/lib/arel/session.rb
+++ b/lib/arel/session.rb
@@ -5,16 +5,22 @@ module Arel
alias_method :manufacture, :new
def start
- if @started
+ if defined?(@started) && @started
yield
else
begin
@started = true
@instance = manufacture
- metaclass.send :alias_method, :new, :instance
+ metaclass.class_eval do
+ undef :new
+ alias_method :new, :instance
+ end
yield
ensure
- metaclass.send :alias_method, :new, :manufacture
+ metaclass.class_eval do
+ undef :new
+ alias_method :new, :manufacture
+ end
@started = false
end
end