I find this line in the ZenTest source code:
result = @test_mappings.find { |file_re, ignored| filename =~ file_re }
The @test_mappings and result here are both Array object, but I didn’t found ‘find’ method on Array class in ruby doc. I also tried it on irb:
irb(main):014:0> Array.respond_to? :find => false irb(main):015:0> [1,2,3].find LocalJumpError: no block given from (irb):15:in `find' from (irb):15:in `each' from (irb):15:in `find' from (irb):15 irb(main):016:0> [1,2,3].find{|x| x>1} => 2
Could any one explain it to me? How could find method also return an Array object? thanks in advance.
Arrayincludes theEnumerablemodule, which adds thefindmethod.In your example you tested
Array.respond_to. This will only return true for class methods ofArray.findis an instance method, sorespond_to?must be invoked on an instance of the class.