Advertisement
Guest User

Untitled

a guest
Oct 7th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.40 KB | None | 0 0
  1. module Mst
  2.  
  3. def self.included(base)
  4. base.extend(ClassMethods)
  5. end
  6.  
  7. module ClassMethods
  8. def before(method_name)
  9. m = instance_method(method_name)
  10. define_method method_name do |*args, &block|
  11. yield
  12. m.bind(self).(*args, &block)
  13. end
  14. end
  15. end
  16. end
  17.  
  18. class Foo
  19. include Mst
  20.  
  21. def test
  22. puts "test"
  23. end
  24.  
  25. before :test do
  26. puts "before"
  27. end
  28. end
  29.  
  30.  
  31. Foo.new.test
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement