aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/kernel
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2010-04-05 12:15:08 -0700
committerXavier Noria <fxn@hashref.com>2010-04-05 12:15:08 -0700
commit89978f10afbad3f856e2959a811bed1982715408 (patch)
tree9913b04ec5a63e4e88dd70de023dc50029c43690 /activesupport/lib/active_support/core_ext/kernel
parentc140aca361506a3a759fbe03fad8adc748c807bb (diff)
downloadrails-89978f10afbad3f856e2959a811bed1982715408.tar.gz
rails-89978f10afbad3f856e2959a811bed1982715408.tar.bz2
rails-89978f10afbad3f856e2959a811bed1982715408.zip
moves Object#singleton_class to Kernel#singleton_class to match Ruby also there, same for #class_eval to simplify, and adds coverage for class_eval
Diffstat (limited to 'activesupport/lib/active_support/core_ext/kernel')
-rw-r--r--activesupport/lib/active_support/core_ext/kernel/singleton_class.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/core_ext/kernel/singleton_class.rb b/activesupport/lib/active_support/core_ext/kernel/singleton_class.rb
new file mode 100644
index 0000000000..33612155fb
--- /dev/null
+++ b/activesupport/lib/active_support/core_ext/kernel/singleton_class.rb
@@ -0,0 +1,13 @@
+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.
+ def class_eval(*args, &block)
+ singleton_class.class_eval(*args, &block)
+ end
+end