lib/backports/object.rb in backports-1.5.0 vs lib/backports/object.rb in backports-1.6.0
- old
+ new
@@ -1,8 +1,9 @@
require 'enumerator'
-class Object
+module Kernel # Did you know that object instance methods are defined in Kernel?
+
# Standard in rails. See official documentation[http://api.rubyonrails.org/classes/Object.html]
def try(method_id, *args, &block)
send(method_id, *args, &block) unless self.nil? #todo: check new def
end unless method_defined? :try
@@ -17,6 +18,17 @@
yield obj
obj
end unless method_defined? :returning
Enumerator = Enumerable::Enumerator unless const_defined? :Enumerator # Standard in ruby 1.9
-end
\ No newline at end of file
+
+ def define_singleton_method(symbol, &block)
+ class << self
+ self
+ end.send(:define_method, symbol, block)
+ end unless method_defined? :define_singleton_method
+
+ def instance_exec(*arg, &block)
+ define_singleton_method(:"temporary method for instance_exec", &block)
+ send(:"temporary method for instance_exec", *arg)
+ end unless method_defined? :instance_exec
+end