Ruby is an increasingly popular, fully object-oriented dynamic programming language, hailed by many practitioners as the finest and most useful language available today. When Ruby first burst onto the scene in the Western world, the Pragmatic Programmers were there with the definitive reference manual, "Programming Ruby: The Pragmatic Programmer's Guide. Now in its Second Edition, author Dave Thomas has expanded the famous Pickaxe book with over 200 pages of new content, covering all the new and improved language features of Ruby 1.8 and standard library modules. The Pickaxe contains four major sections: An acclaimed tutorial on using Ruby. The definitive reference to the language. … Complete documentation on all built-in classes, modules, and methods Complete descriptions of all 98 standard libraries. If you enjoyed the First Edition, you'll appreciate the new and expanded content, including: enhanced coverage of installation, packaging, documenting Ruby source code, threading and synchronization, and enhancing Ruby's capabilities using C-language extensions. Programming for the world-wide web is easy in Ruby, with new chapters on XML/RPC, SOAP, distributed Ruby, templating systems and other web services. There's even a new chapter on unit testing. This is the definitive reference manual for Ruby, including a description of all the standard library modules, a complete reference to all built-in classes and modules (including more than 250 significant changes since the First Edition). Coverage of other features has grown tremendously, including details on how to harness the sophisticated capabilities of irb, so you can dynamically examine and experiment with yourrunning code. "Ruby is a wonderfully powerful and useful language, and whenever I'm working with it this book is at my side" --Martin Fowler, Chief Scientist, ThoughtWorks

Chad Fowler is co-director of Ruby Central, Inc., and remains an active, driving force in the Ruby community.

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

Free shipping

A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Our guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.