Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Programming Ruby 1.9 & 2.0
Table of Contents
Foreword to the Third Edition
Preface
Why Ruby?
Ruby Versions
Changes in the Book
Resources
Acknowledgments
Notation Conventions
Road Map
Part 1: Facets of Ruby
Chapter 1: Getting Started
1.1 The Command Prompt
1.2 Installing Ruby
1.3 Running Ruby
1.4 Ruby Documentation: RDoc and ri
Chapter 2: Ruby.new
2.1 Ruby Is an Object-Oriented Language
2.2 Some Basic Ruby
2.3 Arrays and Hashes
2.4 Symbols
2.5 Control Structures
2.6 Regular Expressions
2.7 Blocks and Iterators
2.8 Reading and ’Riting
2.9 Command-Line Arguments
2.10 Onward and Upward
Chapter 3: Classes, Objects, and Variables
3.1 Objects and Attributes
3.2 Classes Working with Other Classes
3.3 Access Control
3.4 Variables
Chapter 4: Containers, Blocks, and Iterators
4.1 Arrays
4.2 Hashes
4.3 Blocks and Iterators
4.4 Containers Everywhere
Chapter 5: Sharing Functionality: Inheritance, Modules, and Mixins
5.1 Inheritance and Messages
5.2 Modules
5.3 Mixins
5.4 Iterators and the Enumerable Module
5.5 Composing Modules
5.6 Inheritance, Mixins, and Design
Chapter 6: Standard Types
6.1 Numbers
6.2 Strings
6.3 Ranges
Chapter 7: Regular Expressions
7.1 What Regular Expressions Let You Do
7.2 Ruby’s Regular Expressions
7.3 Digging Deeper
7.4 Advanced Regular Expressions
7.5 \z
Chapter 8: More About Methods
8.1 Defining a Method
8.2 Calling a Method
Chapter 9: Expressions
9.1 Operator Expressions
9.2 Miscellaneous Expressions
9.3 Assignment
9.4 Conditional Execution
9.5 case Expressions
9.6 Loops
9.7 Variable Scope, Loops, and Blocks
Chapter 10: Exceptions, catch, and throw
10.1 The Exception Class
10.2 Handling Exceptions
10.3 Raising Exceptions
10.4 catch and throw
Chapter 11: Basic Input and Output
11.1 What Is an IO Object?
11.2 Opening and Closing Files
11.3 Reading and Writing Files
11.4 Talking to Networks
11.5 Parsing HTML
Chapter 12: Fibers, Threads, and Processes
12.1 Fibers
12.2 Multithreading
12.3 Controlling the Thread Scheduler
12.4 Mutual Exclusion
12.5 Running Multiple Processes
Chapter 13: Unit Testing
13.1 The Testing Framework
13.2 Structuring Tests
13.3 Organizing and Running Tests
13.4 RSpec and Shoulda
13.5 Test::Unit assertions
Chapter 14: When Trouble Strikes!
14.1 Ruby Debugger
14.2 Interactive Ruby
14.3 Editor Support
14.4 But It Doesn’t Work!
14.5 But It’s Too Slow!
Part 2: Ruby in Its Setting
Chapter 15: Ruby and Its World
15.1 Command-Line Arguments
15.2 Program Termination
15.3 Environment Variables
15.4 Where Ruby Finds Its Libraries
15.5 RubyGems Integration
15.6 The Rake Build Tool
15.7 Build Environment
Chapter 16: Namespaces, Source Files, and Distribution
16.1 Namespaces
16.2 Organizing Your Source
16.3 Distributing and Installing Your Code
Chapter 17: Character Encoding
17.1 Encodings
17.2 Source Files
17.3 Transcoding
17.4 Input and Output Encoding
17.5 Default External Encoding
17.6 Encoding Compatibility
17.7 Default Internal Encoding
17.8 Fun with Unicode
Chapter 18: Interactive Ruby Shell
18.1 Command Line
18.2 Commands
Chapter 19: Documenting Ruby
19.1 Adding RDoc to Ruby Code
19.2 Adding RDoc to C Extensions
19.3 Running RDoc
19.4 Ruby source file documented with RDoc
19.5 C source file documented with RDoc
Chapter 20: Ruby and the Web
20.1 Writing CGI Scripts
20.2 Using cgi.rb
20.3 Templating Systems
20.4 Cookies
20.5 Choice of Web Servers
20.6 Frameworks
Chapter 21: Ruby and Microsoft Windows
21.1 Running Ruby Under Windows
21.2 Win32API
21.3 Windows Automation
Part 3: Ruby Crystallized
Chapter 22: The Ruby Language
22.1 Source File Encoding
22.2 Source Layout
22.3 The Basic Types
22.4 Names
22.5 Variables and Constants
22.6 Expressions, Conditionals, and Loops
22.7 Method Definition
22.8 Invoking a Method
22.9 Aliasing
22.10 Class Definition
22.11 Module Definitions
22.12 Access Control
22.13 Blocks, Closures, and Proc Objects
22.14 Exceptions
22.15 catch and throw
Chapter 23: Duck Typing
23.1 Classes Aren’t Types
23.2 Coding like a Duck
23.3 Standard Protocols and Coercions
23.4 Walk the Walk, Talk the Talk
Chapter 24: Metaprogramming
24.1 Objects and Classes
24.2 Singletons
24.3 Inheritance and Visibility
24.4 Modules and Mixins
24.5 Metaprogramming Class-Level Macros
24.6 Two Other Forms of Class Definition
24.7 instance_eval and class_eval
24.8 Hook Methods
24.9 One Last Example
24.10 Top-Level Execution Environment
24.11 The Turtle Graphics Program
Chapter 25: Reflection, ObjectSpace, and Distributed Ruby
25.1 Looking at Objects
25.2 Looking at Classes
25.3 Calling Methods Dynamically
25.4 System Hooks
25.5 Tracing Your Program’s Execution
25.6 Behind the Curtain: The Ruby VM
25.7 Marshaling and Distributed Ruby
25.8 Compile Time? Runtime? Anytime!
Chapter 26: Locking Ruby in the Safe
26.1 Safe Levels
26.2 Tainted Objects
26.3 Trusted Objects
26.4 Definition of the safe levels
Part 4: Ruby Library Reference
Chapter 27: Built-in Classes and Modules
27.1 Alphabetical Listing
Class Array < Object
Array: Class methods
Array: Instance methods
Class BasicObject
BasicObject: Instance methods
BasicObject: Private instance methods
Class Bignum < Integer
Bignum: Instance methods
Class Binding < Object
Binding: Instance methods
Class Class < Module
Class: Class methods
Class: Instance methods
Class: Private instance methods
Module Comparable
Comparable: Instance methods
Class Complex < Numeric
Complex: Class methods
Complex: Instance methods
Class Dir < Object
Dir: Class methods
Dir: Instance methods
Class Encoding < Object
Encoding: Class methods
Encoding: Instance methods
Module Enumerable
Enumerable: Instance methods
Class Enumerator < Object
Enumerator: Class methods
Enumerator: Instance methods
Module Errno
Class Exception < Object
Exception: Class methods
Exception: Instance methods
Class FalseClass < Object
FalseClass: Instance methods
Class Fiber < Object
Fiber: Class methods
Fiber: Instance methods
Class File < IO
File: Class methods 17:
File: Instance methods
Class File::Stat < Object
File::Stat: Instance methods
Module FileTest
Class Fixnum < Integer
Fixnum: Instance methods
Class Float < Numeric
Float: Instance methods
Module GC
GC: Module methods
GC: Instance methods
Module GC::Profiler
GC::Profiler: Module methods
Class Hash < Object
Hash: Class methods
Hash: Instance methods
Class Integer < Numeric
Integer: Instance methods
Class IO < Object
IO: Class methods
IO: Instance methods
Module Kernel
Module Marshal
Marshal: Module methods
Class MatchData < Object
MatchData: Instance methods
Module Math
Math: Module methods
Class Method < Object
Method: Instance methods
Class Module < Object
Module: Class methods
Module: Instance methods
Module: Private instance methods
Class Mutex < Object
Mutex: Instance methods
Class NilClass < Object
NilClass: Instance methods
Class Numeric < Object
Numeric: Instance methods
Class Object < BasicObject
Object: Instance methods 24: 26:
Object: Private instance methods
Module ObjectSpace
ObjectSpace: Module methods
Class Proc < Object
Proc: Class methods
Proc: Instance methods
Module Process
Process: Module methods
Module Process::GID
Process::GID: Module methods
Class Process::Status < Object
Process::Status: Instance methods
Module Process::Sys
Process::Sys: Module methods
Module Process::UID
Process::UID: Module methods
Class Range < Object
Range: Class methods
Range: Instance methods
Class Random < Object
Random: Class methods
Random: Instance methods
Class Rational < Numeric
Rational: Instance methods
Class Regexp < Object
Regexp: Class methods
Regexp: Instance methods
Module Signal
Signal: Module methods
Class String < Object
String: Class methods
String: Instance methods
Class Struct < Object
Struct: Class methods
Struct: Instance methods
Class Struct::Tms < Struct
Class Symbol < Object
Symbol: Class methods
Symbol: Instance methods
Class Thread < Object
Thread: Class methods
Thread: Instance methods
Class ThreadGroup < Object
ThreadGroup: Class methods
ThreadGroup: Instance methods
Class Time < Object
Time: Class methods
Time: Instance methods
Class TracePoint < Object
TracePoint: Class methods
TracePoint: Instance methods
Class TrueClass < Object
TrueClass: Instance methods
Class UnboundMethod < Object
UnboundMethod: Instance methods
Chapter 28: Standard Library
28.1 Library Changes in Ruby 1.9
Library Abbrev: Generate Sets of Unique Abbreviations
Library Base64: Base64 Conversion Functions
Library Benchmark: Time Code Execution
Library BigDecimal: Large-Precision Decimal Numbers
Library CGI: CGI Programming Support
Library CGI::Session: CGI Sessions
Library CMath: Complex Transcendental Functions
Library Complex: Complex Numbers
Library Continuation: Continuations
Library coverage: Experimental Code Coverage Analysis
Library CSV: Comma-Separated Values
Library Curses: CRT Screen Handling
Library Date/DateTime: Date and Time Manipulation
Library DBM: Interface to DBM Databases
Library Delegator: Delegate Calls to Other Object
Library Digest: MD5, RIPEMD-160 SHA1, and SHA2 Digests
Library dRuby: Distributed Ruby Objects (drb)
Library English: English Names for Global Symbols
Library erb: Lightweight Templating for HTML
Library Etc: Access User and Group Information in /etc/passwd
Library expect: Expect Method for IO Objects
Library Fcntl: Symbolic Names for IO#fcntl Commands
Library Fiber: Coroutines Using Fibers
Library Fiddle: Access Dynamically Loaded Libraries (.dll and .so)
Library FileUtils: File and Directory Manipulation
Library Find: Traverse Directory Trees
Library Forwardable: Object Delegation
Library GDBM: Interface to GDBM Database
Library GetoptLong: Parse Command-Line Options
Library GServer: Generic TCP Server
Library IO/console: Add console support to IO objects
Library IO/nonblock: Turn blocking I/O on and off
Library IO/Wait: Check for Pending Data to Be Read
Library IPAddr: Represent and Manipulate IP Addresses
Library irb: Interactive Ruby
Library json: Generate and Parse JSON Format
Library Logger: Application Logging
Library mathn: Unified Numbers
Library Matrix: Matrix and Vector Manipulation
Library MiniTest: Unit Testing Framework
Library Monitor: Monitor-Based Synchronization
Library Mutex_m: Mutex Mix-In
Library Net::FTP: FTP Client
Library Net::HTTP: HTTP Client
Library Net::IMAP: Access an IMAP Mail Server
Library Net::POP: Access a POP Mail Server
Library Net::SMTP: Simple SMTP Client
Library Net::Telnet: Telnet Client
Library NKF: Interface to Network Kanji Filter
Library Observable: The Observer Pattern
Library open-uri: Treat FTP and HTTP Resources as Files
Library Open3: Run Subprocess and Connect to All Streams
Library OpenSSL: SSL Library
Library OptionParser: Option Parsing
Library OpenStruct: Open (dynamic) Structure
Library Pathname: Representation of File Paths
Library PP: Pretty-print Objects
Library PrettyPrint: General Pretty Printer
Library prime: Prime Numbers
Library Profile: Profile Execution of a Ruby Program
Library Profiler__: Control Execution Profiling
Library PStore: Persistent Object Storage
Library PTY: Pseudo-Terminal Interface: Interact with External Processes
Library Rational: Rational Numbers
Library Readline: Interface to GNU Readline Library
Library Resolv: DNS Client Library
Library REXML: XML Processing Library
Library Rinda: Tuplespace Implementation
Library Ripper: Parse Ruby Source
Library RSS: RSS Feed Generation and Parsing
Library Scanf: Input Format Conversion
Library SDBM: Interface to SDBM Database
Library SecureRandom: Access to Secure Random Number Generators
Library Set: Implement Various Forms of Set
Library Shellwords: Manipulate Shell Lines Using POSIX Semantics
Library Singleton: The Singleton Pattern
Library Socket: IP, TCP, Unix, and SOCKS Socket Access
Library StringIO: Treat Strings as IO Objects
Library StringScanner: Basic String Tokenizer
Library Syslog: Interface to Unix System Logging
Library Tempfile: Temporary File Support
Library Test::Unit: Unit Testing Framework
Library thread: Utility Functionality for Threading
Library ThreadsWait: Wait for Multiple Threads to Terminate
Library Time: Extended Functionality for Class Time
Library Timeout: Run a Block with Timeout
Library Tk: Wrapper for Tcl/Tk
Library tmpdir: System-Independent Temporary Directory Location
Library Tracer: Trace Program Execution
Library TSort: Topological Sort
Library un: Command-Line Interface to FileUtils
Library URI: RFC 2396 Uniform Resource Identifier (URI) Support
Library WeakRef: Support for Weak References
Library WEBrick: Web Server Toolkit
Library WIN32OLE: Windows Automation
Library XMLRPC: Remote Procedure Calls using XML-RPC
Library YAML: Object Serialization/Deserialization
Library Zlib: Read and Write Compressed Files
Appendix 1: Support
A1.1 Web Sites
A1.2 Usenet Newsgroup
A1.3 Mailing Lists
A1.4 Bug Reporting
Appendix 2: Bibliography
You May Be Interested In…
← Prev
Back
Next →
← Prev
Back
Next →