mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
remove Kernel#singleton_class from core_ext as it is present in ruby 1.9
This commit is contained in:
parent
2e9eb0a3ca
commit
a57c6441a8
3 changed files with 1 additions and 26 deletions
|
@ -1,11 +1,4 @@
|
||||||
module Kernel
|
module Kernel
|
||||||
# Returns the object's singleton class.
|
|
||||||
def singleton_class
|
|
||||||
class << self
|
|
||||||
self
|
|
||||||
end
|
|
||||||
end unless respond_to?(:singleton_class) # exists in 1.9.2
|
|
||||||
|
|
||||||
# class_eval on an object acts like singleton_class.class_eval.
|
# class_eval on an object acts like singleton_class.class_eval.
|
||||||
def class_eval(*args, &block)
|
def class_eval(*args, &block)
|
||||||
singleton_class.class_eval(*args, &block)
|
singleton_class.class_eval(*args, &block)
|
||||||
|
|
|
@ -42,11 +42,6 @@ class KernelTest < Test::Unit::TestCase
|
||||||
assert_equal 1, silence_stderr { 1 }
|
assert_equal 1, silence_stderr { 1 }
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_singleton_class
|
|
||||||
o = Object.new
|
|
||||||
assert_equal class << o; self end, o.singleton_class
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_class_eval
|
def test_class_eval
|
||||||
o = Object.new
|
o = Object.new
|
||||||
class << o; @x = 1; end
|
class << o; @x = 1; end
|
||||||
|
|
|
@ -177,19 +177,6 @@ end
|
||||||
|
|
||||||
NOTE: Defined in +active_support/core_ext/object/try.rb+.
|
NOTE: Defined in +active_support/core_ext/object/try.rb+.
|
||||||
|
|
||||||
h4. +singleton_class+
|
|
||||||
|
|
||||||
The method +singleton_class+ returns the singleton class of the receiver:
|
|
||||||
|
|
||||||
<ruby>
|
|
||||||
String.singleton_class # => #<Class:String>
|
|
||||||
String.new.singleton_class # => #<Class:#<String:0x17a1d1c>>
|
|
||||||
</ruby>
|
|
||||||
|
|
||||||
WARNING: Fixnums and symbols have no singleton classes, +singleton_class+ raises +TypeError+ on them. Moreover, the singleton classes of +nil+, +true+, and +false+, are +NilClass+, +TrueClass+, and +FalseClass+, respectively.
|
|
||||||
|
|
||||||
NOTE: Defined in +active_support/core_ext/kernel/singleton_class.rb+.
|
|
||||||
|
|
||||||
h4. +class_eval(*args, &block)+
|
h4. +class_eval(*args, &block)+
|
||||||
|
|
||||||
You can evaluate code in the context of any object's singleton class using +class_eval+:
|
You can evaluate code in the context of any object's singleton class using +class_eval+:
|
||||||
|
|
Loading…
Reference in a new issue