CARVIEW |
Our Titles | Resources | Podcasts | Discussions | Support |
Programming Ruby 3: The Pragmatic Programmers' Guide, 3rd Edition
by Dave Thomas, with Chad Fowler and Andy Hunt
This is the Pickaxe book, named for the tool on the cover. The original PickAxe was the first English-language book on Ruby. Each edition of the book tracks the latest Ruby release, and each is the definitive reference to Ruby. This third edition maintains that tradition, and has been updated to reflect the new features of Ruby 1.9.
Ruby is the fastest growing and most exciting dynamic language out there. If you need to get working programs delivered fast, you should add Ruby to your toolbox.
Did You Buy the Second Edition from Us?
If you bought the second edition book or PDF from us, we have some significant savings for you. Visit your home page for details.
ISBN: 978-1-9343560-8-1
Buy Now
This title is currently available in Beta. Buy it now, and you'll be able to download successive releases of the PDF as the authors add material and correct mistakes. You'll get the final PDF when the book is finished.
If you buy the combo pack (Beta PDF + Paper Book) now, you'll get the Beta PDF now and the paper book when it's released on or about September 15, 2008.
About this Book
Would you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Are you frustrated with demanding languages that seem to get in your way, instead of getting the work done? Are you using Rails, and want to dig deeper into the underlying Ruby language? If so, then we’ve got a language and book for you!
Ruby is a fully object-oriented language, much like the classic object-oriented language, Smalltalk. Like Smalltalk, it is dynamically typed (as opposed to Java or C++), but unlike Smalltalk, Ruby features the same conveniences found in modern scripting languages such as Perl and Python.
The combination of the power of a pure object-oriented language with the convenience of a scripting language makes Ruby a favorite tool of intelligent, forward-thinking programmers.
The Pickaxe contains four major sections:
- An acclaimed tutorial on using Ruby.
- The definitive reference to the language.
- Complete documentation of all built-in classes, modules, and methods.
- Complete descriptions of all 98 standard libraries.
This is the reference manual for Ruby, including a description of all the standard library modules, a complete reference to all built-in classes and modules (including all the new and changed methods introduced by Ruby 1.9). It also includes all the new and changed syntax and semantics introduced since Ruby 1.8. Learn about the new parameter passing rules, local variable scoping in blocks, fibers, and the new block declaration syntax, among other exciting new features.
- The definitive reference manual for Ruby programmers.
- Up-to-date and expanded for Ruby version 1.9.
- Complete documentation of all built-in classes, modules, and methods.
- Complete descriptions of all 98 standard libraries.
Tracking Ruby
Matz is still making adjustments to Ruby 1.9. This book will track those changes—the PDF will be updated to reflect the very latest Ruby, and we’ll only go to print once the book is accurate and Ruby 1.9 has been frozen.
Contents and Extracts
As this is a Beta Book, the contents of the book will change while it is under development.
- BETA release Notes
- 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
- Symbols
- 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
- FIBERS, THREADS , AND PROCESSES
- Fibers
- 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 AND ITS WORLD
- Command-Line Arguments
- Program Termination
- Environment Variables
- Where Ruby Finds Its Libraries (Regular and Gems)
- Rake Build Tool
- Build Environment
- INTERACTIVE RUBY SHELL
- Command Line
- Configuration
- Commands
- Restrictions
- Extras
- DOCUMENTING RUBY
- Adding RDoc to Ruby Code
- Adding RDoc to C Extensions
- Running RDoc
- Displaying Program Usage
- RUBY AND THE WEB
- Writing CGI Scripts
- Cookies
- Choice of Web Servers
- Frameworks
- RUBY AND MICROSOFT WINDOWS
- Getting Ruby for Windows
- Running Ruby Under Windows
- Win32API
- Windows Automation
- 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!
- BUILT-IN CLASSES AND MODULES
- Detailed descriptions of all the methods in all built-in classes and modules (with example code)
- STANDARD LIBRARY
- Summary descriptions of all standard libraries distributed with Ruby
- EXTENDING RUBY
- Appendices
- Socket Library
- MKMF Reference
- Support
- Bibliography
- Index
About the Author
Dave Thomas is a cornerstone of the Ruby community, and is personally responsible for many of its innovative directions and initiatives. He and original co-author Andy Hunt are founders of the Pragmatic Programmers and the Pragmatic Bookshelf. Chad Fowler is co-director of Ruby Central, Inc., and remains an active, driving force in the Ruby community
Related Titles
![]() |
Rails Recipes Chad Fowler |
![]() |
Agile Web Development with Rails Dave Thomas and David Heinemeier Hansson, with Leon Breedt, Mike Clark, James Duncan Davidson, Justin Gehtland, and Andreas Schwarz |
![]() |
Programming Erlang Joe Armstrong |
![]() |
Everyday Scripting with Ruby Brian Marick |
![]() |
Advanced Rails Recipes Mike Clark |
![]() |
Deploying Rails Applications Ezra Zygmuntowicz, Bruce Tate, and Clinton Begin |
![]() |
FXRuby Lyle Johnson |
![]() |
The Ruby Object Model and Metaprogramming Dave Thomas |
Categories
Home | About Us | Connect! | Write For Us | Privacy Policy | Terms of Use | Credits | Contact Us
The Pragmatic Bookshelf™ is an imprint of
The Pragmatic Programmers, LLC.
Copyright © 1999–2008 The Pragmatic Programmers, LLC.
All Rights Reserved.