contents


preface
acknowledgments
about this book

Part 1 Ruby techniques

1 Ruby under the microscope
1.1 Why Ruby now?
1.2 Ruby by example
1.3 Facets of Ruby
1.4 Metaprogramming
1.5 Summary
2 Testing Ruby
2.1 Testing principles
2.2 Test-driven development with Ruby
2.3 Behavior-driven development with RSpec
2.4 A testing environment
2.5 Testing your tests
2.6 Summary
3 Scripting with Ruby
3.1 Scripting with Ruby
3.2 Automating with OLE and OSA
3.3 Using Rake
3.4 Summary

Part 2 Integration and communication

4 Ruby on Rails techniques
4.1 Extending Rails
4.2 Rails performance
4.3 Summary
5 Web services
5.1 Using HTTP
5.2 REST with Rails
5.3 SOAP services
5.4 Summary
6 Automating communication
6.1 Automating email
6.2 Automating instant communication
6.3 Summary
7 Asynchronous messaging
7.1 Open source messaging servers
7.2 WebSphere MQ
7.3 Summary
8 Deployment
8.1 Creating deployable packages with RubyGems
8.2 Deploying web applications
8.3 Monitoring with God.rb
8.4 Summary

Part 3 Data and document techniques

9 Database facilities and techniques
9.1 Using plain-text files for data persistence
9.2 Using the (g)dbm API
9.3 The MySQL driver
9.4 Using DBI
9.5 Summary
10 Structured documents
10.1 XML in practice
10.2 Parsing HTML and XHTML with Hpricot
10.3 Writing configuration data: revisited
10.4 Reading RSS feeds
10.5 Creating your own feed
10.6 Using YAML for data storage
10.7 Summary
11 Identity and authentication
11.1 Securely storing a password
11.2 Authenticating against Active Directory
11.3 Adding authentication to your Rails application
11.4 Semi-private, personalized feeds
11.5 HTTP Basic Authentication
11.6 Integrating OpenID into your application
11.7 Summary
12 Searching and indexing
12.1 The principles of searching
12.2 Standalone and high-performance searching
12.3 Integrating search with other technologies
12.4 Summary
13 Document processing and reporting
13.1 Processing CSV data
13.2 Generating and emailing daily reports
13.3 Comparing text reports to well-formed data
13.4 Creating customized documents for printing
13.5 Reporting against large datasets
13.6 Summary

 
appendix A Installing Ruby
appendix B JRuby
appendix C Deploying web apps
index