Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Advanced Rails
SPECIAL OFFER: Upgrade this ebook with O’Reilly Preface
Prerequisites Conventions Used in This Book Using Code Examples How to Contact Us Safari® Books Online Acknowledgments
1. Foundational Techniques
What Is Metaprogramming?
Don't Repeat Yourself Caveats Bottom-Up Programming
Ruby Foundations
Classes and Modules Method Lookup
The rules Class inheritance Class instantiation Including modules The singleton class Singleton classes of class objects Method missing
Metaid Variable Lookup Blocks, Methods, and Procs
Blocks to Procs and Procs to blocks Closures
Metaprogramming Techniques
Delaying Method Lookup Until Runtime Generative Programming: Writing Code On-the-Fly Continuations Bindings Introspection and ObjectSpace: Examining Data and Methods at Runtime
ObjectSpace
Delegation with Proxy Classes
DelegateClass and Forwardable
Monkeypatching Disadvantages of monkeypatching Adding Functionality to Existing Methods
Subclassing Aspect-oriented programming Method chaining
Modulization
Functional Programming
Higher-Order Functions Enumerable
Predicates Filters Transformers Aggregators Other
Enumerator
Examples
Runtime Feature Changes Rails Routing Code
Further Reading
2. ActiveSupport and RailTies
Ruby You May Have Missed
Array Dir Enumerable File Hash Kernel Module Proc String
How to Read Code
How to Locate Code Reading the Call Stack Debugging Ruby and Rails
Debugging Rails with ruby-debug
Where to Start
Pick something interesting Start at the top
Read the Tests Stay Current
ActiveSupport
Dependencies Deprecation
Deprecated instance variables
Inflector JSON Whiny Nil
Core Extensions
Array
Conversions Grouping Option processing Random selection
Blank Class Attribute Accessors Class Inheritable Attributes Date and Time
Conversions Conversions from Numeric Time calculations
Enumerable Exception File Float Hash
Conversions Option processing HashWithIndifferentAccess
Integer Kernel
Daemonize Reporting
Module
Aliasing Delegation Introspection
Numeric Conversions Object
instance_exec Miscellaneous methods
Range String
Inflector String i18n Miscellaneous methods
Symbol#to_proc TimeZone
RailTies
Rails Configuration Application Initialization in 20 Easy Steps Request Dispatch
Further Reading
3. Rails Plugins
About Plugins
Plugin Loading Installing Rails Plugins
RaPT Piston Decentralized version control
Writing Plugins Plugin Examples
Account Location SSL Requirement HTTP Authentication
Testing Plugins
Testing Plugin Database Dependencies
Further Reading
4. Database
Database Management Systems
PostgreSQL MySQL SQLite Microsoft SQL Server Oracle
Large/Binary Objects
Database Storage
PostgreSQL MySQL Oracle
Filesystem Storage Sending Data with X-Sendfile
Web server configuration
Serving Static Files Managing Uploads in Rails
Attachment plugins Rolling your own Upload progress
Advanced Database Features
Application Versus Integration Databases Constraints Composite Keys Triggers, Rules, and Stored Procedures Examples
Large object deletion Data partitioning
Connecting to Multiple Databases
Magic Multi-Connections
Caching Load Balancing and High Availability
MySQL
Replication MySQL cluster
PostgreSQL
High availability: Warm standby Master-slave replication: Slony-I Multimaster replication: PGCluster
Oracle Microsoft SQL Server
LDAP
ActiveLDAP Authenticating with LDAP
Further Reading
5. Security
Application Issues
Authentication
Password hashing in Rails
Don't Trust the Client
Form processing Hidden form fields Client-side validation Cookies Double-check everything
Secure Fallback Avoid Security Through Obscurity Secure Your Error Messages Whitelist, Don't Blacklist
Web Issues
Rails Sessions
Cookie-based sessions
Cross-Site Scripting
Mitigation Whitelisting
Cross-Site Request Forgery
CSRF mitigation
Canonicalization: What's in a Name?
SQL Injection Ruby's Environment
Using the Shell Object Tainting
Further Reading
6. Performance
Measurement Tools
Black-Box Analysis
Statistics: The least you need to know Black-box analysis with httperf
Code Timing Rails Analyzer Tools
Production log analyzer Action profiler Rails Analyzer Tools
Rails Optimization Example
Profiling an Action Optimizing and Reprofiling Benchmarking
Running the benchmark Interpreting the results
ActiveRecord Performance
Diving into SQL 1+N Problem Indexing
Foreign key indexes Other indexes Full-text indexing Spatial indexes Updating index statistics
Database Performance Measurement
Examining the query plan
Architectural Scalability
Sessions
ActiveRecordStore MemCacheStore CookieStore Session management
Caching
Page caching Action caching Fragment caching Cache sweepers
Other Systems
Choosing the Right Tool
Leveraging external programs Writing inline C code
ActionMailer
Further Reading
7. REST, Resources, and Web Services
What Is REST?
Verbs GET PUT DELETE POST Resources
Name opacity
Representations and Content Types
Selecting a representation
Statelessness
HTTP state Why statelessness? Resourceful session state: An example Authentication
Benefits of a RESTful Architecture
Conceptual Simplicity Caching and Scalability Robustness to Change Uniformity
RESTful Rails
RESTful Routing Resource-Based Named Routes
Custom resource routes Nested resource routes Singleton resource routes
ActionView Support
Method emulation
Content Types HTTP Caching
Custom caching
HTTP Response Status Codes ActiveResource: Consuming RESTful Services Action Web Service
Case Study: Amazon S3
Concepts and Terminology Authentication
Alternative authentication options
Architecture and Operations S3 Clients and Servers
Further Reading
8. i18n and L10n
Locale Character Encodings
ASCII
Extended ASCII Problems with ASCII
Unicode
Unicode Transformation Formats
Rails and Unicode
Multilingualization in Ruby 1.9 ActiveSupport::Multibyte Unicode Normalization Filtering UTF-8 Input Storing UTF-8
MySQL PostgreSQL
Serving UTF-8 Character Set Conversion
JavaScript URI encoding and UTF-8
Rails L10n
Interface/Resource Translation
gettext Gibberish Globalize
Locale-Specific Settings Model Translation Globalize Example: An Address Book
Localizing the address book
Further Reading
9. Incorporating and Extending Rails
Replacing Rails Components
Replacing ActiveRecord
DataMapper Ambition Og
Alternative Template Engines
Markaby Liquid Haml
Incorporating Rails Components
ActiveRecord
ETL operations Schema operations Standalone data store Other Ruby applications
ActionMailer
Custom Rake tasks Receiving email
Contributing to Rails
Contributing Patches Rails Unit Tests
Further Reading
10. Large Projects
Version Control
Centralized Version Control
CVS Subversion
Decentralized Version Control Branching and Merging
Subversion branching and merging Mercurial branching and merging
Database Migrations
Issue Tracking Project Structure
Subversion Configuration
Importing existing applications
Subversion Externals and Piston Rails Version Environment Initialization Including Gems Multi-Application Projects
Rails Deployment
Shared-Nothing Scalability Front End Web Server
Asset hosts for static files
Application Server Capistrano Vlad the Deployer Continuous Integration
Further Reading
Index About the Author Colophon SPECIAL OFFER: Upgrade this ebook with O’Reilly
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion