Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. class Foo
  2. def initialize
  3. puts '[*] In Foo#initialize'
  4. @foo = ['Added in intialize in Foo']
  5. end
  6.  
  7. def foo
  8. puts '[*] In Foo#foo: '
  9. pp @foo
  10. puts "[*] foo.class: #{@foo.class}"
  11. puts '[*] Ending in Foo#Foo'
  12. @foo
  13. end
  14. end
  15.  
  16. module FooExtensions
  17. attr_accessor :bar
  18.  
  19. def initialize
  20. super
  21. puts '[*] In FooExtensions#initialize'
  22. @foo << 'Added in Foo Extensions'
  23. @bar = 'bar'
  24. end
  25.  
  26. def foo
  27. puts '[!] In FooExtensions#foo'
  28. puts "[!] bar: #{bar}"
  29. foo_tmp = super
  30. foo_tmp << 'modifiying return'
  31. end
  32. end
  33.  
  34. class Foo
  35. prepend FooExtensions
  36. end
  37.  
  38. puts "Calling foo.new"
  39. foo = Foo.new
  40. puts "Calling foo.foo"
  41. puts foo.foo
  42. puts "Calling foo.bar: #{foo.bar}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement