Ruby has libraries for attaching programs to the three main types of user interface. The web interface, Ruby’s most popular, is covered in depth in Chapters 15, 16, and (to a lesser extent) 14. This chapter covers the other two interfaces: the terminal or console interface, and the graphical ( GUI) interface. We also cover some unorthodox interfaces (Recipe 21.11).
The terminal interface is is a text-based interface usually
invoked from a command line. It’s used by programs like
irb and the Ruby interpreter itself. The
terminal interface is usually seen on Unix systems, but all modern
operating systems support it.
In the classic Unix-style “command-line program,” the user interface
consists of the options used to invoke the program (Recipe 21.3); and the program’s
standard input, output, and error streams (Recipe 21.1; also see Recipe 6.16). The Ruby interpreter
is a good example of this kind of program. You can invoke the
ruby program with arguments like
--version, but once the interpreter starts, your
options are limited to typing in a Ruby program and executing it.
The advantage of this simple interface is that you can use Unix
shell tools like redirection and pipes to connect these programs to each
other. Instead of manually typing a Ruby program into the interpreter’s
standard input, you can send it a file with the Unix command
ruby < file.rb. If you’ve got another program that generates Ruby code and prints it to standard output, you can pipe ...