yml file, 83
account_location, 85??“87
attachments, 107
Deadlock Retry, 93
examples of, 85??“90
Ferret library, 170
Gibberish, 253??“254
Globalize, 254, 257
example of, 258??“268
HTTP Authentication, 89
Independent Migrations, 307
installing, 80??“83
Liquid, 283
loading, 79
restfully_yours, 221
ssl-requirement, 87
testing, 90??“95
whitelists, 141
writing, 83??“85
(see also applications)
POST method, 190
PostgreSQL, 97
8-bit Unicode Transformation Format
(UTF-8), 247
high availability, 123
large/binary objects, 102
.pot files, 251
pound, 318
precomposed characters, 243
predicates, 37
privileges, DROP TABLE, 144
Proc method, 48
Proc#binding method, 28
processing
forms, 132
upload, 108
procs, 20??“23
production branches, 302
Production Log Analyzer, 153
profiling
Action Profiler, 153
actions, 155??“157
programming
ActiveSupport, 57
Core Extensions, 60??“75
dependencies, 57
deprecation, 58
Inflector, 59
JSON, 59
Whiny Nil, 60
aspect-oriented programming (AOP), 32
338 | Index
programming (continued)
bottom-up, 3
functional, 36??“41
metaprogramming, 1??“4
reading code, 49??“57
progress, upload, 108
progressive enhancement, 135
project structure, 309
environment initialization, 311
externals, 310
gems, 312
multi-application, 313??“315
Subversion configuration, 309
(see also large projects)
promises (lazy evaluation), 274
properties, session storage methods, 137
prototyping, 287
proxy classes, delegation with, 30
PStore, 174
PUT method, 189
Q
query plans, 171??“173
R
Rails
contributing to, 289??“295
unit tests, 293
Rails Analyzer Tools, 153??“155
Action Profiler, 153
Production Log Analyzer, 153
RailsBench tool, 161??“164
rainbow attacks, 128
Rakefile, 84
customizing, 288
random selection, 61
ranges, Core Extensions, 72
rapid prototyping, 287
RaPT, 80
reader methods, 25
reading
call stacks, 50
code, 49??“57
tests, 56
README file (plugins), 85
receiving email, 289
recovery, passwords, 129
redundant code, 3
Referer header, 131
register_globals option, 131
reject method, 38
replacing components
ActiveRecord, 271??“281
alternative template engines, 282??“284
replication
factor, 121
master-slave, 121
multimaster, 123
reporting, 69
repository hooks, 297
Representational State Transfer (see REST)
representations, 193??“195
reprofiling, 158??“161
Request Tracker (RT), 308
resource-based URIs, 134
resources
ActiveResource, 223??“230
architecture, 233
Representational State Transfer
(REST), 190??“193
routing, 211??“216
state, 195
sessions, 198
translation, 250??“255
respond_to method, 217
response status codes, Hypertext Transfer
Protocol (HTTP), 222
REST (Representational State Transfer)
benefits of, 205??“209
overview of, 185??“187
representations, 193??“195
resources, 190??“193
RESTful Rails, 209??“231
statelessness, 195??“205
verbs, 187??“190
RESTful Rails URI conventions, 199
restfully_yours plugin, 221
results, interpreting benchmarking, 163
revision
code, downloading, 297
Mercurial numbers, 305
right-to-left (RTL) text, 238
RMagick, 107, 182
robustness to change, 208
routing
code, 43
resources, 211??“216
RESTful, 210
RT (Request Tracker), 308
RTL (right-to-left) text, 238
Index | 339
Ruby-DBI (Ruby database-independent
adapter), 100
ruby-debug, 52??“56
RubyGems, 312, 314
Magic Multi-Connections, 118
RubyInline, 182
rules, 114
method lookups, 5
running
benchmarks, 163
maintenance automatically, 171
runtime
Apache Portable Runtime (APR), 299
feature change, 41
methods
delaying lookup until, 23
viewing at, 28??“36
S
safe methods, 188, 189
salting passwords, 128
SAN (storage area network), 124
sanitize method, 140
scaffolding, 291
scalability
architecture, 173??“181
Representational State Transfer
(REST), 206
shared-nothing, 316??“317
Scalable Coherent Interconnect (SCI), 121
scanning profiles, 158??“161
schemas
ActiveRecord migration, 285
definition methods, 129
SCI (Scalable Coherent Interconnect), 121
script/plugin tool, 80??“83
searching
code, 49
global searches, 56
Seaside, 26
security
application design, 127??“137
architecture
canonicalization, 143
cross-site request forgery
(CSRF), 141??“143
cross-site scripting (XSS), 139??“141
sessions, 137??“139
web issues, 137??“144
authentication, 127??“130
clients, 130??“135
environments, 145
error messages, 136
Liquid, 283
obscurity, 135
secure fallback, 135
SQL injection, 144
whitelists, 137
select method, 37
selection
of representations, 193
tools, 182
semantic introspection, 2
sendfile function, 104
sending data with X-Sendfile, 105
separation of concerns, 4
Serializable isolation level, 97
servers
8-bit Unicode Transformation Format
(UTF-8), 248
Amazon S3 (Simple Storage Services) case
study, 234
Apache, 318
applications, 319
black-box analysis, 148
front end web, 317??“319
Lighttpd, 318
nginx, 318
pen, 318
pound, 318
services
Action Web Service (AWS), 231
ActiveResource, 223??“230
Amazon S3 (Simple Storage Service) case
study, 231??“235
serving static files, X-Sendfile, 107
sessions
cookies, 138
cross-site request forgery (CSRF), 141
hijacking, 138
management, 176
objects, 58
scalability, 174
security, 137??“139
state, 195
resources, 198
sticky, 138, 197
storage
ActiveRecordStore, 174
CookieStore, 134, 176
fragments, 179
MemCacheStore, 175
methods, 137
340 | Index
Settings constructor, 31
S-expressions, 2
shared-nothing architecture, 197
shared-nothing scalability, 316??“317
shells, security, 145
silence_stream method, 69
silence_warnings method, 69
simplicity
Liquid, 282
of Representational State Transfer
(REST), 206
singleton classes, 12??“14
of class objects, 14??“17
resource routes, 215
Slony-I, 123
Smalltalk web application framework, 26
sort method, 38
sort_by method, 38, 274
source control and optimization, 161
spatial indexes, 170
SQL (Structured Query Language)
ActiveRecord performance, 165
injection, 144
performance, 171
query plans, 171??“173
(see also databases)
SQL Server, 100
SQLite, 100
ssl_requirement plugin, 87
stacks
continuations, 25??“27
reading, 50
standalone data stores, ActiveRecord, 286
standard deviation, 149
starting ruby-debug, 52??“56
state
continuations, 25??“27
Hypertext Transfer Protocol (HTTP), 196
resources, 195
session, 195, 198
stateless constraint, 186
statelessness, 195??“205
statements, bindings, 27
static files
asset hosts for, 319
X-Sendfile, 107
statistical calculations, 65
statistics, 148
indexes, updating, 171
sticky sessions, 138, 197
storage
8-bit Unicode Transformation Format
(UTF-8), 245??“248
databases, 102
filesystems, 103
sessions
CookieStore, 134
methods, 137
storage area network (SAN), 124
stored procedures, 114
stores
ActiveRecord standalone data, 286
session fragments, 179
String methods
%, 48
scan, 48
unpack, 46
strings, Core Extensions, 72
structure, project, 309
environment initialization, 311
externals, 310
gems, 312
multi-application, 313??“315
Subversion configuration, 309
Structured Query Language (see SQL)
subclassing, 32
Subversion, 253, 298
branching and merging, 302
configuration, 309
Subverted Migrations, 307
super keyword, 5, 7
suppress method, 69
svn import command, 309
sweepers, cache, 180
Symbol#to_proc method, 74
syntactic introspection, 2
SyslogLogger, 153
T
tables, rainbow, 128
tainting, 146
TamperedWithCookie exception, 134, 138
TCP (Transmission Control Protocol),
sequence-number prediction
attack, 138
templates
alternative engines, 282??“284
New Product, 226
test fixtures, 94, 315
Index | 341
test/ directory, 85
Test-Driven Development (test-first) style, 56
testing
components, 293
plugins, 90??“95
reading tests, 56
text
bidirectional, 238
copy-modify-merge model, 297
full-text indexing, 169
gettext, 250??“253
password recovery, 129
text editors, 50
tickets, filing, 292
time
calculations, 64
conversions, 64
formats, 63
Timestamped Migrations, 308
TimeZone, 75
timing, code, 151??“153
to_a method, 39
to_hash method, 275
to_sql method, 275
tokens, hash message authentication code
(HMAC), 143
tools
continuous integration, 321
measurement, 148??“155
black-box analysis, 148??“151
code timing, 151??“153
Rail Analyzer Tools, 153??“155
RailsBench, 161??“164
ruby-debug, 52??“56
RubyInline, 182
script/plugin, 80??“83
selecting, 182
Trac, 309
issue-tracking, 292
tracking issues, 308
TRADITIONAL command, 99
traffic, black-box analysis, 148
transformers, 38
translation
adding, 255
files, creating, 253
GNU gettext, 250??“253
interface/resource, 250??“255
models, 257
transparency, requirement of HTTP
caching, 206
transparent subclasses, 33
triangles, REST, 187
triggers, 114
troubleshooting
ASCII, 238
components, 293
debugging, 52??“56
plugins, 90??“95
security, 137??“144
canonicalization, 143
cross-site request forgery
(CSRF), 141??“143
cross-site scripting (XSS), 139??“141
sessions, 137??“139
trunks, cloning, 303
type maps, 193
types
content, 193??“195
RESTful Rails, 217??“219
of variables, 19
U
UnboundMethod, 20
Unicode, 238??“249
uniform interface constraint, 186
uniformity, Representational State Transfer
(REST), 209
uninstall.
Pages:
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489