title: Changing the `Proc` binding during invocation
body: <p>Is it possible to change the binding of a procedure during invocation time?</p>
  
  <pre><code>class AllValidator
    def age_validator
      Proc.new {|value| self.age &gt; value }
    end
  end
  
  class Bar
    attr_accessor :age
    def doSomething
      validator = AllValidator.new.age_validator
      validator.call(25) # How to pass self as the binding?
    end
  end
  </code></pre>
  
  <p>In the code above, how do I change the binding of the proc during invocation?
  Is there a way to pass the binding much like the <code>eval</code> function?</p>
  
  <p><strong>Note</strong>
  If the example above were real, I would use <code>mixin</code>/<code>inheritence</code> etc. I am using the code to demonstrate my problem scenario. </p>