So not only can you pass arguments to a method, you can also pass code blocks - and the method can even pass arguments to that code block.
def greeting() yield "Hello", "there!" yield "Bye", "now." end greeting {|word_one, word_two | puts word_one + " " + word_two}