You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
15 lines
373 B
15 lines
373 B
# Stolen straight from ActiveSupport
|
|
|
|
class Proc #:nodoc:
|
|
def bind(object)
|
|
block, time = self, Time.now
|
|
(class << object; self end).class_eval do
|
|
method_name = "__bind_#{time.to_i}_#{time.usec}"
|
|
define_method(method_name, &block)
|
|
method = instance_method(method_name)
|
|
remove_method(method_name)
|
|
method
|
|
end.bind(object)
|
|
end
|
|
end
|