Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
This comparison is big! We’re only showing the most recent 250 commits
Commits on Aug 03, 2010
@fxn fxn Merge remote branch 'docrails/master' into 3-0-stable 4dc2521
@wycats wycats Properly deprecate `config.load_paths` and `config.gem` f73e9d2
@neerajdotname neerajdotname fixing documentation 74f7e17
@neerajdotname neerajdotname Making Active Record base_test.rb thinner by moving tests
to relevant files.

Number of assertions before refactoring:
2391 tests, 7579 assertions, 0 failures, 0 errors

Number of assertions after refactoring:
2391 tests, 7579 assertions, 0 failures, 0 errors

Signed-off-by: José Valim <>
@neerajdotname neerajdotname Dynamic finder method like scoped_by_* create methods so that
method_missing is not hit next time. Adding a test for this

Signed-off-by: José Valim <>
@neerajdotname neerajdotname adding test cases for ActiveModel::Errors
Signed-off-by: José Valim <>
@toretore toretore Remove or fix non-working examples and add a few tests to Dirty [#5185

Signed-off-by: José Valim <>
Curtis Cablegram Change log-tailer to properly track multi-byte characters.
When end-of-line is represented within a file as "\r\n",
it is represented in memory as a single "\n".  This patch eliminates
the discrepancy between size on disk and size in memory.

Signed-off-by: José Valim <>
Curtis Cablegram Refactor log-tailer to depend on File#eof? rather than File#mtime
[#5220 state:resolved]

Eliminate 1 instance variable and 1 local variable.

Signed-off-by: José Valim <>
@josevalim josevalim Merge branch 'master' into 3-0-stable 503931d
@samleb samleb Avoid potentially expensive inspect call in router. [#4491 state:reso…

Signed-off-by: José Valim <>
@rohit rohit Failing test for validates_length_of, when both too_short and too_lon…
…g messages are set [#5283 state:open]

Signed-off-by: José Valim <>
@josevalim josevalim validates_length_of should not change the options hash in place. [#5283
… state:resolved]
@josevalim josevalim Freeze options so we raise an error when people modify it in place. 3b170b2
@spastorino spastorino Stub is_a? not instance_of? here 677e1e5
@subbarao subbarao Tidy up error.rb code
[#5288 state:committed]

Signed-off-by: Santiago Pastorino <>
@wycats wycats Properly deprecate validate_on_#{on} 1318bf6
@wycats wycats properly deprecate #{type}_validation_on_#{on} 9ae7f04
@wycats wycats update this for a change in the core method 4474470
@mhayes mhayes removed duplicate word b3bb684
@wycats wycats Allow :name to be a Symbol (was this removed by accident?) 7a1bba4
@wycats wycats Even though exempt_from_layout is no longer needed, some people are s…
…till using it. Deprecate it instead of removing.
@wycats wycats Fix the session= deprecation to include the secret key 43cc69c
@wycats wycats Deprecate ActionController::UrlWriter properly 84703be
@wycats wycats Fix a couple of mistaken deprecation solutions 146a013
@wycats wycats Move the deprecations before the load hooks af8e085
@wycats wycats Deprecate the @controller instance variable 109dc3c
RainerBlessing query value is converted to_s instead of to_yaml 8b7219b
@wycats wycats Put lib back on the autoload path 46a1da7
@wycats wycats Fix up constant deprecation to be less dependent on load order b46b5a6
Commits on Aug 04, 2010
@tenderlove tenderlove avoid passing AR::Base objects to Arel when we can 9269e55
@rohit rohit Give extracted options back to args in AMo callbacks. Fixes two faili…
…ng tests in AR.

Signed-off-by: Santiago Pastorino <>
@wycats wycats Shim 07c5e54
@wycats wycats Provide a bit more information in the deprecation for config.gem 91e4249
@wycats wycats require_dependency should require using the normal mechanism if possi…
…ble to avoid double-requires
@wycats wycats Add a fake UrlRewriter, since instantiating it in tests happens, but …
…is basically crazysauce
@wycats wycats Concernify SanitizeHelper and TextHelper so including TextHelper corr…
…ectly include SanitizeHelper and extends its ClassMethods
@wycats wycats Fix a subtle bug involving RAILS_ROOT fbc40a4
@wycats wycats If a file is in the load path, require it without its full path (in m…
…ore places)
@wycats wycats I'm unsure how cloning was working in Rails 3 before 2498cda
@weppos weppos Fixed Railtie Rdoc examples not properly formatted [#4918 state:resol…

Signed-off-by: Simone Carletti <>
@josevalim josevalim Revert "Put lib back on the autoload path"
This was causing engines/gems to eager load everything in lib. Another fix is comming soon.

This reverts commit 02a5842.
@tenderlove tenderlove do not pass AR objects to ARel f316a85
@josevalim josevalim Revert "If a file is in the load path, require it without its full pa…
…th (in more places)"

Caused failures in ActionMailer test suite.

This reverts commit 963638a.
@drogus drogus Reload action_methods in AbstractController after defining new method.
Signed-off-by: José Valim <>
@neerajdotname neerajdotname adding documentation to ActiveSupport::Concern ht:strictly typed for …
…an awesome example

some minor documentation changes
@tenderlove tenderlove fisting indentation 906ef23
@tenderlove tenderlove call to_a since we are not passing anything to all() ba9602b
@lukaszx0 lukaszx0 Typo in class name 18bcc54
@lukaszx0 lukaszx0 Fixed broken test suite - there was problem with namespacing in Depre…
…catedConstant class
@fxn fxn standarizes the use of the article "an" for "SQL" and "SQLite" d191db7
@fxn fxn Merge remote branch 'docrails/master' into 3-0-stable 902d732
@tenderlove tenderlove avoid passing lists of lists to the group clause 05a49c7
Commits on Aug 05, 2010
@tomstuart tomstuart Fix ActiveSupport::Callbacks' define_callbacks and ActiveSupport::Con…
…cern documentation to look like native English
@fxn fxn AS guide: documents DateTime#advance e34fb80
@tenderlove tenderlove fixing whitespace errors 0a86cb5
@neerajdotname neerajdotname more documentation for class_inheritable_* 06e4c48
@neerajdotname neerajdotname fixing typo 148dd2e
Commits on Aug 06, 2010
@fxn fxn AR guide: fixes a query bed98b9
@fxn fxn AS guide: documents calculations with Time objects 0bb8d05
@tenderlove tenderlove do not rely on arel class structure 8fb0c9f
@tenderlove tenderlove sorry AR, my privates are none of your business a897a1f
@tenderlove tenderlove test to ensure that respond_to? delegates to arel 001a574
@tenderlove tenderlove reduce the number of times current_connection_id is called in with_co…
@fxn fxn adds Abstract Controller to the API 413c9c8
Commits on Aug 07, 2010
@fxn fxn quick hack: hijacks the predicate RDoc::Parser.binary? so that it doe…
…s not consider a handful of ordinary Ruby files in the Rails tree as binary (and thus excluded from the API)
@fxn fxn undoes one of the modifications to RDoc::Parser.binary? 78c7705
Commits on Aug 08, 2010
@fxn fxn updates horo dependency to 1.0.1 783dc52
@fxn fxn routing guide: documents the CONTROLLER environment variable understo…
…od by the routes task
@neerajdotname neerajdotname correcting wrong example d55491c
Commits on Aug 09, 2010
@dpmcnevin dpmcnevin updated the action_controller guide with the new session configuratio…
…n options
@adzap adzap typo in AM 5c109e2
@fxn fxn AC guide: commit review, block examples go at column 0, use .example.…
…com as example domain
@fxn fxn adds URL to the body generated by the redirect macro in the routes ma…
…pper as per the RFC, extracts common test pattern into a test macro, adds a test to cover the :status option
@fxn fxn form helpers guide: fixes an example 195e891
@fxn fxn adds missing requires for Object#try efb2bd0
@wycats wycats Improve best_standards_support to use only IE=Edge in development mode 22cbc3f
@wycats wycats rename _snowman to _e f85b206
@wycats wycats Properly deprecate register_javascript_include_default and reset_java…
@brianmario brianmario update tests for mysql2 support a263a8f
@brianmario brianmario typo 98384b1
@brianmario brianmario skip the before_type_cast_on_datetime test entirely for mysql2 3ccf350
@brianmario brianmario ignore this test for mysql2 b02751c
@brianmario brianmario move mysql2 adapter into core 2d68183
@jeremy jeremy Merge remote branch 'brianmario/3-0-stable' into 3-0-stable cbf89a3
@fxn fxn AS guide: documents date/datetime/time arithmetic with durations 3c404c5
@fxn fxn AS guide: documents Process.daemon 8968eec
Commits on Aug 10, 2010
@fxn fxn AS guide: documents Module#delegate 68bed3a
@fxn fxn AS guide: documents Module#(instance_)method_names aaa52c6
@fxn fxn AS guide: documents Module#redefine_method ca3fc4b
@fxn fxn adds the AS guide to the guides index 63ffec8
@fxn fxn AS guide: removes some duplication, and makes a second pass on method…
… delegation
@fxn fxn fixes a typo reported by rymai b2eaac2
@josevalim josevalim Revert "require_dependency should require using the normal mechanism …
…if possible to avoid double-requires"

This was causing double requires since 991cd59 was reverted.
This reverts commit 8bf7973.
@goncalossilva goncalossilva added support for more printers d9b77dd
Commits on Aug 11, 2010
@nicksieger nicksieger Missed one spot for --skip-active-record, which means that new Gemfil…
…e isn't set up right

Signed-off-by: Santiago Pastorino <>
José Valim & Carlos Antonio da Silva layout_for works again with objects as specified in the documentation…
… and Rails 2.3 [#5357 state:resolved]
@josevalim josevalim Ensure @config is not a reserved instance variable in controllers. [#…
…5342 state:resolved]
@tenderlove tenderlove stop using private methods 8464ee0
@tenderlove tenderlove unless Array#empty? is faster than if Array#present? dac2b37
@tenderlove tenderlove avoiding tap saves us time a56ee4c
@tenderlove tenderlove dry up the hash dup and avoid sending nil values 5352a89
@tenderlove tenderlove avoid multiple hash lookups ff760dd
@fxn fxn no need to assign if we are gonna return bfd7281
@fxn fxn AS guide: some revisions 36cb62e
@tenderlove tenderlove subtracting blank strings is slightly faster than blank? c8509d5
@pavlos pavlos Raising exception if fixture file can't be found 1c970b8
Commits on Aug 12, 2010
@wycats wycats Replace snowman with utf8=✓ f2d22ec
@amerine amerine fixed indentation in test cases
Signed-off-by: wycats <>
@josevalim josevalim Make update_attribute behave as in Rails 2.3 and document the behavio…
…r intrinsic to its implementation.
@neerajdotname neerajdotname adding more documentation for autosave option 06af291
@neerajdotname neerajdotname updating documentation for named_scope and default_scope 198bffe
@fxn fxn commit review: applies guidelines to "# =>" 1e6e868
Paco Guzman applied guidelines to "# =>" ab68d4b
@fxn fxn revises some autosave docs, style and content 4dcce5d
@neerajdotname neerajdotname Ensure we can nest include calls [#5285 state:resolved]
Signed-off-by: José Valim <>
@gcampbell gcampbell Add missing ActiveModel::Validations require
[#5311 state: resolved]

ActiveModel::Validations uses Hash#except, but does not require it from
ActiveSupport.  (This wasn't showing up in the tests, because it was
required in the helper, and was also required in

Signed-off-by: José Valim <>
@subbarao subbarao tidy up validations length code [#5297 state:resolved]
Signed-off-by: José Valim <>
@subbarao subbarao no callbacks should be created for empty array [#5289 state:resolved]
Signed-off-by: José Valim <>
@fxn fxn be more precise re :validate and :autosave 91ae6e9
@jeremy jeremy It's snowing! e428300
Commits on Aug 13, 2010
@tenderlove tenderlove symbol to proc is slow, we should avoid it fb6edb1
@tenderlove tenderlove do not use arel constants directly abd9736
@tenderlove tenderlove avoiding symbol to proc again e86b758
@tenderlove tenderlove removing references to arel constants bacf781
@tenderlove tenderlove avoid direct use of arel constants 108179b
@spastorino spastorino Moves local_request? to require.local?
[#5361 state:committed]
@tenderlove tenderlove removing a lolinject 79e15f0
@sikachu sikachu Removing most of the symbol to proc usage in Active Record
This will hopefully make Active Record run a bit more faster.
@tenderlove tenderlove converting to a symbol is not necessary 59e63e7
Commits on Aug 14, 2010
@spastorino spastorino This method is actually not used, it's implemented on the concrete ad…

[#5331 state:committed]
@spastorino spastorino Makes AR use AMo to_key implementation ccd4364
@spastorino spastorino Deletes trailing whitespaces (over text files only find * -type f -ex…
…ec sed 's/[ \t]*$//' -i {} \;)
@spastorino spastorino Fixes some ActionMailer tests 05ba082
@subbarao subbarao Adding missing required statement
[#5056 state:resolved]

Signed-off-by: Santiago Pastorino <>
@spastorino spastorino deprected -> deprecated b3ece73
@mhayes mhayes in Rendering objects with RecordIdentifier example, locals should ref…
…erence @account not @buyer
@spastorino spastorino object/try should be required after abstract_unit to have AS in the l…
…oad path
@spastorino spastorino Both tests are using the same model, move the model to another file a…
…nd add the missing require
@spastorino spastorino Add missing model 707248a
@spastorino spastorino Should be Boolean there a036999
Commits on Aug 15, 2010
@spastorino spastorino MySQL2 added to CI 477a9d4
@spastorino spastorino Makes topics.written_on null => true back again some tests rely on that 0f1b9bb
@spastorino spastorino connection reader is defined later 6d68cde
@spastorino spastorino Revert "connection reader is defined later"
This reverts commit f4cce71.
@spastorino spastorino remove already defined method to avoid warnings ae7732f
@spastorino spastorino Makes use of class << self instead of def self. 5f7bfb1
@spastorino spastorino This is not needed anymore bdeeca3
@mikel mikel Making time_zone_options_for_select return a html_safe string
Signed-off-by: Santiago Pastorino <>
@josevalim josevalim to_key should return all exists keys (if any exists), regardless if t…
…he object is persisted or not. If you need it to reflect persistance, you should use to_param.
@spastorino spastorino Revert "Makes AR use AMo to_key implementation"
This reverts commit ccd4364.
@amerine amerine make rake routes print the name of a Rack endpoint app [#5338 state:r…

Signed-off-by: José Valim <>
@josevalim josevalim Improve routes task code and print the application as :to => RackApp. [
…#5338 state:resolved]
@brycethornton brycethornton Allow for any possible TLD when using the :all option with the cookie…
… session store. This works for subdomain.mysite.local,,, etc. [#5147 state:resolved]

Signed-off-by: José Valim <>
@subbarao subbarao select tags coerce the :selected option, options to strings before co…
…mparison [#5056 state:resolved]

Signed-off-by: José Valim <>
@wycats wycats render :file in 2.3 behaved like render :template in Rails 3 (adding …
…the current controller as a prefix)
@wycats wycats headers["X-Foo-Count"] = 2 is deprecated properly now 6883681
@wycats wycats find .text.html and .text.plain files, and deprecate it b8ec4ea
@wycats wycats Add back #callback and deprecate it a34dce9
@fxn fxn routing guide: wildcard segments are quite flexible, go beyond the si…
…mple use case
@wycats wycats Test callbacks 83cb532
@wycats wycats Make sure apps upgrading from 2.3 get defaulted to UTF-8 (ht: parndt) 452a56a
Commits on Aug 16, 2010
@josevalim josevalim annoted_source_code may return nil if an erro rhappens during templat…
…e compiling.
@rsim rsim added dependencies in Gemfile for running ActiveRecord tests with Ora…
…cle database
@rsim rsim Replaced hardcoded SessionStore table creation SQL with calls to Acti…
…veRecord adapter migration methods

Otherwise hardcoded table creation SQL was failing on Oracle database
Commits on Aug 17, 2010
@fxn fxn the (public) routing DSL does not accept symbols for get|post|put|del…
@tobi tobi Added test case to verify that transaction callbacks are correctly pr…
…opagated to class observers

Signed-off-by: Santiago Pastorino <>
@spastorino spastorino assert_equal here 020aeb6
@fxn fxn code gardening: we have assert_(nil|blank|present), more concise, wit…
…h better default failure messages - let's use them
@wagenet wagenet Class Attribute setter returns set value
Signed-off-by: wycats <>
@amerine amerine added testcase for belongs_to with a counter_cache and touch
[#5365 state:committed]

Signed-off-by: Santiago Pastorino <>
@spastorino spastorino Restore pet -> owner relationship to the previous state 6f478b0
@spastorino spastorino recommended is the right word here 22d242c
@josiahivey josiahivey Debugging Guide: Improve grammar for the RJS section 21063e5
@tsdbrown tsdbrown Added an example and explaination for using an optional path scope fo…
…r the locale
@fxn fxn debugging guide: revises the section on debugging RJS 4b21dfe
@Jeff-Lawson Jeff-Lawson Bug Fix -- clean up connection after stored procedure [#3151 state:re…
@Jeff-Lawson Jeff-Lawson Bug Fix -- clean up connection after stored procedure [#3151 state:re…
Matthew Mongeau to_sentence should return a duplicate 92f4cca
@treybean treybean Missing object for comparison in ActiveModel::EachValidator example c…
@fxn fxn you rarely want ^ or $ in validations, use \A when you mean \A 23303d6
@indirect indirect Allow member actions (get, etc) to accept strings, with test c40856c
@wycats wycats Sadly, this segv's in 1.8 :( 0a41ece
@wycats wycats 1.8 block variable shadowing strikes again 588ac71
Commits on Aug 18, 2010
@spastorino spastorino Bump up rdoc to 2.5.10 82eff0f
Javier Martín Don't pluralize resource methods [#4704 state:resolved]
Signed-off-by: Santiago Pastorino <>
@tenderlove tenderlove call to present? is not necessary 7e85b16
@tenderlove tenderlove refactoring to remove duplicate logic 2f6383e
@wycats wycats Revert "It's snowing!"
This reverts commit e428300.
Commits on Aug 19, 2010
@fxn fxn get rid of the warning "+ after local variable is interpreted as bina…
…ry operator even though it seems like unary operator" in Ruby 1.9.2
@fxn fxn avoids a ton o warnings activesupport/lib/active_support/dependencies…
….rb:239: warning: loading in progress, circular require considered harmful ... activesupport/lib/active_support/core_ext/hash/indifferent_access.rb while running the suite in Ruby 1.9.2
@fxn fxn now for real, the suite loads everything and these went unpatched 632a224
@fxn fxn avoids warnings about mismatched indentations in Ruby 1.9.2 6fb6ddb
@tenderlove tenderlove refactor if / else to ||= a16ec2f
@jeremy jeremy Memoize STI class lookups for the duration of a request 64f4dc6
@spastorino spastorino We need bundle update only here bef90f8
@tenderlove tenderlove we should wrap strings as sql literals 1ef9b98
@tenderlove tenderlove removing useless ternary 49e406e
@spastorino spastorino Bump up rack-mount to 0.6.10 21c9795
@neerajdotname neerajdotname While creating a new record using has_many create method default scop…
…e of child should be respected.

author.posts.create should take into account default_scope
defined on post.

[#3939: state:resolved]

Signed-off-by: José Valim <>
@pixeltrix pixeltrix Move edit route before show route so that it will have precedence if …
…the :id parameter allows slashes [#5409 state:resolved]

Signed-off-by: José Valim <>
@pixeltrix pixeltrix Move regexps in options hash to :constraints hash so that they are pu…
…shed into the scope [#5208 state:resolved]

Signed-off-by: José Valim <>
@josevalim josevalim Use attribute readers as they are faster in general. 8f2b278
@pixeltrix pixeltrix Optimize find_sti_class when store_full_sti_class is true

Signed-off-by: Jeremy Kemper <>
Commits on Aug 20, 2010
@tenderlove tenderlove updates return number of rows matched rather than number of rows affe…
@spastorino spastorino Bump up tzinfo to 0.3.23 ac66de4
@tenderlove tenderlove fisting after_rollback and after commit callbacks 809a04b
@fxn fxn the pdoc task is no longer needed d033b23
@fxn fxn deletes the rdoc task of each component, they are no longer published…
… separately
@pixeltrix pixeltrix Allow symbols for :path resource(s) option [#5306 state:resolved]
Signed-off-by: José Valim <>
@pixeltrix pixeltrix Don't add the standard https port when using redirect in routes.rb an…
…d ensure that request.scheme returns https when using a reverse proxy.

[#5408 state:resolved]

Signed-off-by: José Valim <>
@neerajdotname neerajdotname after_validation should be called irrespective of the result of valid…

I confirmed that this is the behavior on 2.3.x .

[5419 state:resolved]

Signed-off-by: José Valim <>
@tenderlove tenderlove adding FOUND_ROWS to the connect flags for mysql2 612c233
@pixeltrix pixeltrix Support routing constraints in functional tests
Extend assert_recognizes and assert_generates to support passing
full urls as the path argument. This allows testing of routing
constraints such as subdomain and host within functional tests.

[#5005 state:resolved]

Signed-off-by: José Valim <>
@nicksieger nicksieger Fix hash modification during iteration in Mapper [#5420]
Signed-off-by: Santiago Pastorino <>
Commits on Aug 21, 2010
@fxn fxn requires horo 1.0.2 9011f8f
@fxn fxn prevent RDoc from autolinking "Rails" in the API home page 68e2d1e
@jeremy jeremy Revert "Just add connection management middleware if running in a con…
…current environment."

This reverts commit 6b29dc8.
@brianmario brianmario reload bob after his journy to a new timezone 7dbc99e
@Raphomet Raphomet Trifling typos
[#5422 state:committed]

Signed-off-by: Santiago Pastorino <>
Commits on Aug 22, 2010
@spastorino spastorino Move encoding settings for testing purposes to abstract_unit file 11e9883
@spastorino spastorino Set default_internal and default_external on AM for testing purposes e88f8be
@spastorino spastorino Set default_internal and default_external on AS for testing purposes 2106782
@pixeltrix pixeltrix Cache the symbolized path parameters using a instance variable in the…
… request object rather than the environment hash. This it to prevent stale parameters in later routing constraints/redirects as only the normal path parameters are set by Rack::Mount.

Also if a constraint proc arity is more than one, pass the symbolized path parameters
as the first argument to match redirect proc args and provide easier access.

[#5157 state:resolved]

Signed-off-by: José Valim <>
@spastorino spastorino Fix namespace problem on object which inherit from ActiveSupport::Bas…
@spastorino spastorino Silence warnings for Encoding.default_external= and Encoding.default_…
@tenderlove tenderlove removing duplicate tests 6ca6ef2
@spastorino spastorino type fixed 8235c92
@spastorino spastorino Bump up rack-mount to 0.6.12 6edae45
@rsim rsim updated test_should_record_timestamp_for_join_table for Oracle bedf6a0
@rsim rsim Do not use time zone in test_read_attributes_before_type_cast_on_date…
…time for Oracle database

As currently string_to_time method is not doing time zone conversion to database time zone
Commits on Aug 23, 2010
@fxn fxn adds USAGE to the generator generator USAGE (not sure this meta thing…
… is any good at 8:12 AM with little coffee)
@fxn fxn generators guide: edit pass b97ad85
@fxn fxn removes words moved in previous edit of the generator generator USAGE 2570fda
@rsim rsim use database from ARUNIT_DB_NAME environment variable when running te…
…sts on Oracle
@brianmario brianmario no need to depend on mysql2 master anymore
Signed-off-by: Santiago Pastorino <>
@brianmario brianmario mysql2 adapter is being maintained in the mysql2 gem itself
Signed-off-by: Santiago Pastorino <>
@tenderlove tenderlove we should mark strings as SQL Literal values eeb9b37
@tenderlove tenderlove sql literal strings should be marked as sql literal strings 1cc653f
@tenderlove tenderlove we should mark sql strings as sql literals 6a1ea88
Commits on Aug 24, 2010
@josevalim josevalim Update CHANGELOG for ActionPack. a1ca2e0
@tenderlove tenderlove marking sql literals as sql literals 36fcc99
@spastorino spastorino Config is deprecated on 1.8.8 and 1.9.3 use RbConfig c8b84a1
@dhh dhh Prep for RC2 8931dd1
@dhh dhh Prefer the mysql2 gem for MySQL database.ymls fc6db62
@dhh dhh Depend on latest Bundler RC 880eaa1
@spastorino spastorino Point guides to bundler 1.0.0.rc.6 aafb290
@dhh dhh Depend on latest arel RC bc61196
@dhh dhh Bump rails version 04aa14f
@dhh dhh mysql db defaults to mysql2 gem 822fa17