mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
uses Object#metaclass and Object#class_eval in a few spots
[#2797 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
This commit is contained in:
parent
54a5446641
commit
d32965399c
6 changed files with 11 additions and 7 deletions
|
@ -1,6 +1,7 @@
|
|||
require 'stringio'
|
||||
require 'uri'
|
||||
require 'active_support/test_case'
|
||||
require 'active_support/core_ext/object/metaclass'
|
||||
|
||||
require 'rack/mock_session'
|
||||
require 'rack/test/cookie_jar'
|
||||
|
@ -191,7 +192,7 @@ module ActionController
|
|||
|
||||
unless defined? @named_routes_configured
|
||||
# install the named routes in this session instance.
|
||||
klass = class << self; self; end
|
||||
klass = metaclass
|
||||
Routing::Routes.install_helpers(klass)
|
||||
|
||||
# the helpers are made protected by default--we make them public for
|
||||
|
|
|
@ -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.
|
||||
|
@ -2040,7 +2041,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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
class Proc #:nodoc:
|
||||
def bind(object)
|
||||
block, time = self, Time.now
|
||||
(class << object; self end).class_eval do
|
||||
object.class_eval do
|
||||
method_name = "__bind_#{time.to_i}_#{time.usec}"
|
||||
define_method(method_name, &block) # define_method("__bind_1230458026_720454", &block)
|
||||
method = instance_method(method_name) # method = instance_method("__bind_1230458026_720454")
|
||||
|
|
|
@ -307,7 +307,7 @@ module ActiveSupport
|
|||
|
||||
def _normalize_legacy_filter(kind, filter)
|
||||
if !filter.respond_to?(kind) && filter.respond_to?(:filter)
|
||||
filter.metaclass.class_eval(
|
||||
filter.class_eval(
|
||||
"def #{kind}(context, &block) filter(context, &block) end",
|
||||
__FILE__, __LINE__ - 1)
|
||||
elsif filter.respond_to?(:before) && filter.respond_to?(:after) && kind == :around
|
||||
|
|
Loading…
Reference in a new issue