I was trying to write a collect_if method:

Array#collect_if ( &predicate, &collector )

It would include collector(y) in the result iff predicate(y) was true.

I could not figure out a way of having two named block or proc
arguments to a method. What am I missing? A different metaphor?

Cheers.