aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/object.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/Library/Homebrew/extend/object.rb b/Library/Homebrew/extend/object.rb
new file mode 100644
index 000000000..8ffe5dc90
--- /dev/null
+++ b/Library/Homebrew/extend/object.rb
@@ -0,0 +1,15 @@
+class Object
+ def instance_exec(*args, &block)
+ method_name = :__temp_instance_exec_method
+ singleton_class = (class << self; self; end)
+ singleton_class.class_eval do
+ define_method(method_name, &block)
+ end
+
+ send(method_name, *args)
+ ensure
+ singleton_class.class_eval do
+ remove_method(method_name) if method_defined?(method_name)
+ end
+ end unless method_defined?(:instance_exec)
+end