Guest User

Untitled

a guest
May 25th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. module Implicit
  2. def my_yield(val, &block)
  3. b = eval("self", block.binding)
  4.  
  5. eigen = class << b; self; end
  6.  
  7. b.instance_eval {It = val}
  8.  
  9. my_proc = lambda { val }
  10.  
  11. eigen.send(:define_method, :_, my_proc)
  12.  
  13. yield
  14.  
  15. eigen.send(:remove_method, :_)
  16.  
  17. end
  18. end
  19.  
  20.  
  21. class Object
  22. include Implicit
  23. end
  24.  
  25. def hello
  26. my_yield(10, &Proc.new)
  27. end
  28.  
  29.  
  30. hello { puts(It * 2) }
Add Comment
Please, Sign In to add comment