14 Callable and runnable objects
This chapter covers
Procobjects as anonymous functions- The
lambdamethod for generating functions - Code blocks
- Method objects
- Threads
- Executing external programs
In addition to the basic bread-and-butter method calls that account for most of what happens in your program, Ruby provides an extensive toolkit for making things happen in a variety of ways. You need two or more parts of your code to run concurrently? Create some Thread objects, and run them as needed. Want to choose from among a set of possible functions to execute, and don’t have enough information in advance to write methods for them? Create an array of Proc objects—anonymous functions—and call the one you need. You can even isolate methods as objects or execute dynamically created strings as code.
This chapter is about objects that you can call, execute, or run: threads, anonymous functions, strings, and even methods that have been turned into objects. We’ll look at all these constructs along with some auxiliary tools—keywords, variable bindings, code blocks—that make Ruby’s inclusion of callable, runnable objects possible.