Advertisement
Guest User

Untitled

a guest
May 27th, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. class Object
  2. def behaves_like?(object)
  3. expected_methods =
  4. if object.respond_to?(:instance_methods)
  5. object.instance_methods
  6. else
  7. object.methods
  8. end
  9.  
  10. (expected_methods - methods).empty?
  11. end
  12. end
  13.  
  14. class Foo
  15. def method1; end
  16. end
  17.  
  18. class Bar
  19. def method1; end
  20. def method2; end
  21. end
  22.  
  23. foo = Foo.new
  24. bar = Bar.new
  25.  
  26. p foo.behaves_like?(Bar) # => false
  27. p foo.behaves_like?(bar) # => false
  28. p bar.behaves_like?(Foo) # => true
  29. p bar.behaves_like?(foo) # => true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement