Module: Nuggets::Proc::BindMixin

Included in:
Proc
Defined in:
lib/nuggets/proc/bind_mixin.rb

Instance Method Summary collapse

Instance Method Details

#bind(object) ⇒ Object

call-seq:

proc.bind(object) => aMethod

Straight from Rails’ ActiveSupport – effectively binds proc to object.



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/nuggets/proc/bind_mixin.rb', line 35

def bind(object)
  block, time = self, ::Time.now

  (class << object; self; end).class_eval {
    method_name = "__bind_#{time.to_i}_#{time.usec}"
    define_method(method_name, &block)

    method = instance_method(method_name)
    remove_method(method_name)

    method
  }.bind(object)
end