Looking for a method that will iterate through a list and return the first transformed value. Essentially:
[1, 2, 3, 4].magic { |i| puts "Checking #{i}" i ** 2 if i > 2 } Checking 1 Checking 2 Checking 3 #=> 9 The goal here being that it works like find and stops iterating through the list after getting the first return. (Notice it never checks 4) but also returns the value from the block. (Returns 9 instead of 3)
The issue here is that the block is performing some complex logic, so I don't want to map over the entire array, but I also want to use the value of said logic.