(NOTE: Each chapter
concludes with a Summary.)
Introduction.
WEEK 1. THE FUNDAMENTALS.
Day 1. Getting Started with Ruby.
Why Ruby? Make Sure You Have Ruby. First Steps.
Using Ruby Interactively. Is There Homework in This Class?
Day 2. Hello, Objects!
What Is an Object? The First Object: Self. The
Second Object: Other. Classes. Who Is This “self” Anyway? Name Tags,
Not Suitcases.
Day 3. Containers.
A Change in Convention. Some Words About Ambiguity.
Back to Business. Strings. Arrays. Hashes. Ranges.
Day 4. Iteration and Flow Control.
Using Iterators. Flow Control.
Day 5. The Characteristics of Objects.
Instance Variables. Global Variables. What to
Name Things.
Day 6. Ins and Outs.
Streams. What About Memory Space? Formatted
Output. Class Methods. The Command Line. Class Variables. Errors and Exceptions.
Day 7. Catching Up on Details.
Numbers in Ruby. Boolean Logic. Strings and
String Literals. Block Scope for Local Variables. Shortcuts and Tricks. Functional
and Imperative Styles.
WEEK 2. POWER SCRIPTING.
Day 8. Pattern Matching.
Simple PatternMatching. Position Anchors. Repetition.
Grouping. Switches. Some Container Methods That Use Regexes. Regexes and Matches
As Objects.
Day 9. Inheritance and Modules.
Organizing Organization. The Make-Up of Ruby
Classes: Some “What” and a Little “How” . Fiddling with
Inheritance. Play It Again, Ruby: Another Method Call Example. Modules. Resolving
Method Ambiguities.
Day 10. Program File Layout, Program Design, and the General Case.
Program and File Interaction. Runtime Extension
of Ruby's World: require. The Argument to require. Compiled Extensions. Examining
the Ruby Installation. Abstraction and the General Case.
Day 11. Modules and Classes in Depth.
Designing Modules and Classes for Clarity and
Reuse. Embedded Modules and Namespace Management. Class-Module Distribution
Across Program Files. Overriding Methods.
Day 12. An Introduction to Recursion.
The Canonical Starting Point: Factorials. Efficiency
Concerns. The Towers of Hanoi.
Day 13.Mastering the Operating System.
Motivation. Portability Notes. Gathering Information.
Treating Programs As Functions. Extended Conversations. The Art of Instant Reproduction.
How to Control Your Children.
Day 14. Arguments, Blocks, and Procs.
Life Without Iterators. Writing Iterator Methods.
Other Uses for Blocks.
WEEK 3. MAKING IT WORK FOR YOU.
Day 15. Toward Habitable Interfaces.
Interface Size and Intuitiveness. An IntegerMatrix
Class.
Day 16. Putting It Together (Part I).
The Unjumbler. Notes on Language Enhancement.
An Interactive Process Killer.
Day 17. Ruby/Tk.
What Is Tk? Our First Tk Application. Geometry
Managers. Entry Widgets and Buttons. Some Other Widgets. More Complex Coding.
Day 18. Ruby/Gtk.
Installation under UNIX. Installation under
Windows. First Ruby/Gtk Scripts. Simple Widget Layout. Modular Design for Multiple
Windows. More Widget Types. A Full Ruby/Gtk Application.
Day 19. Some Advanced Topics (That Aren't So Hard).
Sockets. Threads.
Day 20. Working with the Web.
Static Content Versus Dynamic Content. Server-Side
Versus Client-Side. Privileges at the Server. Configuring Apache: httpd.conf.
Test Drives. Know Thy Client. Object-Oriented CGI Support. Embedded Ruby.
Day 21. Putting It Together (Part II).
Binary Decision Trees. Tk-based Peer Chat.
APPENDICES.
Appendix A. irb Results.
Appendix B. Installation Help.
Unix. Microsoft Windows.
Appendix C. Debugging, With and Without a Debugger.
Stack Traces. Inline Diagnostics. The Built-In
Debugger.
Appendix D. Essential Vocabulary.
Index.