| |
| |
Foreword to the First Edition | |
| |
| |
Foreword to the Second Edition | |
| |
| |
Preface | |
| |
| |
Road Map | |
| |
| |
| |
Facets of Ruby | |
| |
| |
| |
Getting Started | |
| |
| |
Installing Ruby | |
| |
| |
Running Ruby | |
| |
| |
Ruby Documentation: RDoc and ri | |
| |
| |
| |
Ruby.new | |
| |
| |
Ruby Is an Object-Oriented Language | |
| |
| |
Some Basic Ruby | |
| |
| |
Arrays and Hashes | |
| |
| |
Control Structures | |
| |
| |
Regular Expressions | |
| |
| |
Blocks and Iterators | |
| |
| |
Reading and 'Riting | |
| |
| |
Onward and Upward | |
| |
| |
| |
Classes, Objects, and Variables | |
| |
| |
Inheritance and Messages | |
| |
| |
Objects and Attributes | |
| |
| |
Class Variables and Class Methods | |
| |
| |
Access Control | |
| |
| |
Variables | |
| |
| |
| |
Containers, Blocks, and Iterators | |
| |
| |
Containers | |
| |
| |
Blocks and Iterators | |
| |
| |
Containers Everywhere | |
| |
| |
| |
Standard Types | |
| |
| |
Numbers | |
| |
| |
Strings | |
| |
| |
Ranges | |
| |
| |
Regular Expressions | |
| |
| |
| |
More about Methods | |
| |
| |
Defining a Method | |
| |
| |
Calling a Method | |
| |
| |
| |
Expressions | |
| |
| |
Operator Expressions | |
| |
| |
Miscellaneous Expressions | |
| |
| |
Assignment | |
| |
| |
Conditional Execution | |
| |
| |
Case Expressions | |
| |
| |
Loops | |
| |
| |
Variable Scope, Loops, and Blocks | |
| |
| |
| |
Exceptions, Catch, and Throw | |
| |
| |
The Exception Class | |
| |
| |
Handling Exceptions | |
| |
| |
Raising Exceptions | |
| |
| |
Catch and Throw | |
| |
| |
| |
Modules | |
| |
| |
Namespaces | |
| |
| |
Mixins | |
| |
| |
Iterators and the Enumerable Module | |
| |
| |
Composing Modules | |
| |
| |
Including Other Files | |
| |
| |
| |
Basic Input and Output | |
| |
| |
What Is an IO Object? | |
| |
| |
Opening and Closing Files | |
| |
| |
Reading and Writing Files | |
| |
| |
Talking to Networks | |
| |
| |
| |
Threads and Processes | |
| |
| |
Multithreading | |
| |
| |
Controlling the Thread Scheduler | |
| |
| |
Mutual Exclusion | |
| |
| |
Running Multiple Processes | |
| |
| |
| |
Unit Testing | |
| |
| |
Test::Unit Framework | |
| |
| |
Structuring Tests | |
| |
| |
Organizing and Running Tests | |
| |
| |
| |
When Trouble Strikes | |
| |
| |
Ruby Debugger | |
| |
| |
Interactive Ruby | |
| |
| |
Editor Support | |
| |
| |
But It Doesn't Work! | |
| |
| |
But It's Too Slow! | |
| |
| |
| |
Ruby in Its Setting | |
| |
| |
| |
Ruby and Its World | |
| |
| |
Command-Line Arguments | |
| |
| |
Program Termination | |
| |
| |
Environment Variables | |
| |
| |
Where Ruby Finds Its Modules | |
| |
| |
Build Environment | |
| |
| |
| |
Interactive Ruby Shell | |
| |
| |
Command Line | |
| |
| |
Configuration | |
| |
| |
Commands | |
| |
| |
Restrictions | |
| |
| |
Rtags and xmp | |
| |
| |
| |
Documenting Ruby | |
| |
| |
Adding RDoc to Ruby Code | |
| |
| |
Adding RDoc to C Extensions | |
| |
| |
Running RDoc | |
| |
| |
Displaying Program Usage | |
| |
| |
| |
Package Management with RubyGems | |
| |
| |
Installing RubyGems | |
| |
| |
Installing Application Gems | |
| |
| |
Installing and Using Gem Libraries | |
| |
| |
Creating Your Own Gems | |
| |
| |
| |
Ruby and the Web | |
| |
| |
Writing CGI Scripts | |
| |
| |
Cookies | |
| |
| |
Improving Performance | |
| |
| |
Choice of Web Servers | |
| |
| |
SOAP and Web Services | |
| |
| |
More Information | |
| |
| |
| |
Ruby TK | |
| |
| |
Simple TK Application | |
| |
| |
Widgets | |
| |
| |
Binding Events | |
| |
| |
Canvas | |
| |
| |
Scrolling | |
| |
| |
Translating from Perl/TK Documentation | |
| |
| |
| |
Ruby and Microsoft Windows | |
| |
| |
Getting Ruby for Windows | |
| |
| |
Running Ruby Under Windows | |
| |
| |
Win32API | |
| |
| |
Windows Automation | |
| |
| |
| |
Extending Ruby | |
| |
| |
Your First Extension | |
| |
| |
Ruby Objects in C | |
| |
| |
The Jukebox Extension | |
| |
| |
Memory Allocation | |
| |
| |
Ruby Type System | |
| |
| |
Creating an Extension | |
| |
| |
Embedding a Ruby Interpreter | |
| |
| |
Bridging Ruby to Other Languages | |
| |
| |
Ruby C Language API | |
| |
| |
| |
Ruby Crystallized | |
| |
| |
| |
The Ruby Language | |
| |
| |
Source Layout | |
| |
| |
The Basic Types | |
| |
| |
Names | |
| |
| |
Variables and Constants | |
| |
| |
Expressions | |
| |
| |
Method Definition | |
| |
| |
Invoking a Method | |
| |
| |
Aliasing | |
| |
| |
Class Definition | |
| |
| |
Module Definitions | |
| |
| |
Access Control | |
| |
| |
Blocks, Closures, and Proc Objects | |
| |
| |
Exceptions | |
| |
| |
Catch and Throw | |
| |
| |
| |
Duck Typing | |
| |
| |
Classes Aren't Types | |
| |
| |
Coding like a Duck | |
| |
| |
Standard Protocols and Coercions | |
| |
| |
Walk the Walk, Talk the Talk | |
| |
| |
| |
Classes and Objects | |
| |
| |
How Classes and Objects Interact | |
| |
| |
Class and Module Definitions | |
| |
| |
Top-Level Execution Environment | |
| |
| |
Inheritance and Visibility | |
| |
| |
Freezing Objects | |
| |
| |
| |
Locking Ruby in the Safe | |
| |
| |
Safe Levels | |
| |
| |
Tainted Objects | |
| |
| |
| |
Reflection, ObjectSpace, and Distributed Ruby | |
| |
| |
Looking at Objects | |
| |
| |
Looking at Classes | |
| |
| |
Calling Methods Dynamically | |
| |
| |
System Hooks | |
| |
| |
Tracing Your Program's Execution | |
| |
| |
Marshaling and Distributed Ruby | |
| |
| |
Compile Time? Runtime? Anytime! | |
| |
| |
| |
Ruby Library Reference | |
| |
| |
| |
Built-in Classes and Modules | |
| |
| |
Alphabetical Listing | |
| |
| |
| |
Standard Library | |
| |
| |
| |
Appendixes | |
| |
| |
| |
Socket Library | |
| |
| |
| |
Mkmf Reference | |
| |
| |
| |
Support | |
| |
| |
Web Sites | |
| |
| |
Download Sites | |
| |
| |
Usenet Newsgroup | |
| |
| |
Mailing Lists | |
| |
| |
| |
Bibliography | |
| |
| |
Index | |
| |
| |
Summary Tables | |