fork download
  1. class HaveWant
  2.  
  3. attr_reader :answers
  4.  
  5. def initialize(have, *args, want)
  6. @have = have
  7. @args = args
  8. @want = want
  9.  
  10. find_matches
  11. end
  12.  
  13. private
  14.  
  15. def find_matches
  16.  
  17. @answers = @have.methods.map do |method|
  18. @have.dup.method(method)
  19. end.select do |method|
  20. begin
  21. method.call(*@args).eql? @want
  22. rescue
  23. false
  24. end
  25. end.map(&:name)
  26.  
  27. end
  28. end
  29.  
  30. havewant = HaveWant.new("hello", "HELLO")
  31.  
  32. puts havewant.answers
  33.  
  34. havewant = HaveWant.new([3,3,3,4,5], 2..3, [3,4])
  35.  
  36. puts havewant.answers
Success #stdin #stdout 0.06s 9784KB
stdin
Standard input is empty
stdout
helloupcase
swapcase
upcase!
swapcase!
[]
values_at
slice
slice!