Guest User

Untitled

a guest
Jul 19th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. # setup a contrived class to demonstrate pattern dispatch
  2. class Person
  3. attr_accessor :first_name
  4. attr_accessor :last_name
  5. attr_accessor :pets_name
  6. attr_accessor :mothers_maiden_name
  7.  
  8. def drag_queen_name
  9. "#{pets_name} #{mothers_maiden_name}"
  10. end
  11. end
  12.  
  13. # construct an instance of the class
  14. person = Person.new
  15. person.first_name = "john"
  16. person.last_name = "doe"
  17. person.pets_name = "muffin"
  18. person.mothers_maiden_name = "brown"
  19.  
  20. # use pattern dispatch to invoke all 'name' methods
  21. person.public_methods.each do |method_name|
  22. puts "#{method_name} = #{person.send(method_name)}" if method_name =~ /_name$/
  23. end
  24.  
  25. # -- output --
  26. # first_name = john
  27. # last_name = doe
  28. # pets_name = muffin
  29. # mothers_maiden_name = brown
  30. # drag_queen_name = muffin brown
Add Comment
Please, Sign In to add comment