diff options
author | Emilio Tagua <miloops@gmail.com> | 2009-06-16 16:59:12 -0300 |
---|---|---|
committer | Emilio Tagua <miloops@gmail.com> | 2009-06-16 16:59:12 -0300 |
commit | 16ac353f4cb9510aad88240a1c566345da8ceeed (patch) | |
tree | 1d3eb279cabea3d6b315ddc47d471f6fb08a029b /activerecord/lib/active_record | |
parent | 34a068d053c7268caad78d4f1f90ab0e2a38682f (diff) | |
parent | 01a4bc84b8787df74d54147a0cf564df75e87970 (diff) | |
download | rails-16ac353f4cb9510aad88240a1c566345da8ceeed.tar.gz rails-16ac353f4cb9510aad88240a1c566345da8ceeed.tar.bz2 rails-16ac353f4cb9510aad88240a1c566345da8ceeed.zip |
Merge commit 'rails/master'
Diffstat (limited to 'activerecord/lib/active_record')
-rwxr-xr-x | activerecord/lib/active_record/base.rb | 3 | ||||
-rw-r--r-- | activerecord/lib/active_record/migration.rb | 5 | ||||
-rw-r--r-- | activerecord/lib/active_record/named_scope.rb | 3 |
3 files changed, 7 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 4e7979cfff..3f2b56d0c4 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -11,6 +11,7 @@ require 'active_support/core_ext/hash/indifferent_access' require 'active_support/core_ext/hash/slice' require 'active_support/core_ext/string/behavior' require 'active_support/core_ext/symbol' +require 'active_support/core_ext/object/metaclass' module ActiveRecord #:nodoc: # Generic Active Record exception class. @@ -2128,7 +2129,7 @@ module ActiveRecord #:nodoc: # end # end def define_attr_method(name, value=nil, &block) - sing = class << self; self; end + sing = metaclass sing.send :alias_method, "original_#{name}", name if block_given? sing.send :define_method, name, &block diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb index 55512ab447..f7cc244471 100644 --- a/activerecord/lib/active_record/migration.rb +++ b/activerecord/lib/active_record/migration.rb @@ -1,3 +1,5 @@ +require 'active_support/core_ext/object/metaclass' + module ActiveRecord class IrreversibleMigration < ActiveRecordError#:nodoc: end @@ -300,8 +302,7 @@ module ActiveRecord case sym when :up, :down - klass = (class << self; self; end) - klass.send(:alias_method_chain, sym, "benchmarks") + metaclass.send(:alias_method_chain, sym, "benchmarks") end ensure @ignore_new_methods = false diff --git a/activerecord/lib/active_record/named_scope.rb b/activerecord/lib/active_record/named_scope.rb index 1b22fa5e24..dd2a90b8e5 100644 --- a/activerecord/lib/active_record/named_scope.rb +++ b/activerecord/lib/active_record/named_scope.rb @@ -1,5 +1,6 @@ require 'active_support/core_ext/array' require 'active_support/core_ext/hash/except' +require 'active_support/core_ext/object/metaclass' module ActiveRecord module NamedScope @@ -99,7 +100,7 @@ module ActiveRecord end end, &block) end - (class << self; self end).instance_eval do + metaclass.instance_eval do define_method name do |*args| scopes[name].call(self, *args) end |