diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/arel/algebra/extensions/class.rb | 2 | ||||
-rw-r--r-- | lib/arel/session.rb | 12 |
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 |