Ruby can be your multitool for all kinds of text-munging tasks. But to use it effectively, you need to understand how Ruby handles line endings and record separators.
Tag: Input – Output

Episode #649
Input Record Separator
Ruby has a lot of tools for processing input line-by-line. But when you look a little closer, it turns out that these methods are for more than just lines of …

Episode #648
Output Record Separator
Did you know Ruby has a `print` method in addition to `puts`? Did you know it's for record-oriented output? Do you know how to control the formatting of records in …

Episode #583
Async with the Reactor Pattern
Ever wondered how async frameworks such as Ruby's EventMachine or Node.JS work under the hood? Those frameworks are built on a technology known as the Reactor Pattern, and today we're …

Episode #581
Async with Multiplexing
In our quest to coordinate asynchronous tasks, we've attempted a polling approach. Unfortunately, this strategy has some significant efficiency drawbacks. This time, we'll apply a technique known as "multiplexing", to …

Episode #570
Asynch with Polling
How can we make sure asynchronous work is done efficiently? In ep #2 of a series, we'll build one of the simplest possible solutions: a polling model.

Episode #505: Subprocesses Part 15: Capture
Ruby's backtick operator is great for quick-and-dirty output capture, but what do you use when you need more power?

Episode #501: Suppress Output
Learn a robust, cross-platform way to throw away unwanted output in Ruby programs.

Episode #492: Special Variables Part 2: I/O
Learn about Ruby's Perl-style I/O special variables, and why they exist.