Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. extending with ModA
  2. this is method bar of ModB
  3. extending with ModB
  4. this is method bar of ModB
  5.  
  6. module ModA
  7. extend ActiveSupport::Concern
  8.  
  9. module ClassMethods
  10. def bar
  11. puts "this is method bar of ModA"
  12. end
  13.  
  14. # grab UnboundMethod of ModA::ClassMethods::bar
  15. a_bar = instance_method(:bar)
  16.  
  17. # using define_method to capture a_bar
  18. define_method :extend_with_mod_a do
  19. puts "extending #{self} with ModA"
  20. # invoke ModA::ClassMethods::bar properly bound to the class being extended/included with ModA
  21. a_bar.bind(self).call
  22. end
  23. end
  24. end
  25.  
  26. ActiveRecord::Base.send :prepend, ExtModule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement