module Nuggets::Proc::BindMixin

Public Instance Methods

bind(object) → aMethod click to toggle source

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

# 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