Ch. 1. Building Better Programs with Patterns
Ch. 2. Getting Started with Ruby
Ch. 3. Varying the Algorithm with the Template Method
Ch. 4. Replacing the Algorithm with the Strategy
Ch. 5. Keeping Up with the Times with the Observer
Ch. 6. Assembling the Whole from the Parts with the Composite
Ch. 7. Reaching into a Collection with the Iterator
Ch. 8. Getting Things Done with Commands
Ch. 9. Filling in the Gaps with the Adapter
Ch. 10. Getting in Front of Your Object with a Proxy
Ch. 11. Improving Your Objects with a Decorator
Ch. 12. Making Sure There Is Only One with the Singleton
Ch. 13. Picking the Right Class with a Factory
Ch. 14. Easier Object Construction with the Builder
Ch. 15. Assembling Your System with the Interpreter
pt. III. Patterns for Ruby
Ch. 16. Opening Up Your System with Domain-Specific Languages
Ch. 17. Creating Custom Objects with Meta-programming
Ch. 18. Convention Over Configuration
App. A. Getting Hold of Ruby