Skip to content


Subversion checkout URL

You can clone with
Download ZIP

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.
base fork: rails/rails
head fork: rails/rails
This comparison is big! We’re only showing the most recent 250 commits
Commits on Nov 18, 2010
@tenderlove tenderlove delegating path and open to internal tempfile cdf4055
@tenderlove tenderlove testing multiple ORd queries 3c12ab9
Commits on Nov 19, 2010
@carllerche carllerche Raise an ArgumentError when passing an invalid argument to a validator dd3afdd
@fxn fxn guides: gives clear instructions for feedback, removes links to the n…
…ow archived LH project
Commits on Nov 20, 2010
@tenderlove tenderlove do not require ruby-debug automatically. please require it if you hav…
…e declared it as a dependency
@neerajdotname neerajdotname json_escape makes json invalid doc change [#1485 state:resolved] 54828a1
@fxn fxn applies API conventions to the RDoc of json_encode
* Examples running with the text are preferred over separate Example
* No need to call puts, in # => we show the return value, not STDOUT.
* Say explicitly that double quotes are removed.
* Specify that we are talking \uXXX, rather than, say, HTML entities.
@josevalim josevalim Ensure calling reset session twice does not raise errors. 6b00e8e
@josevalim josevalim Ensure session responds to destroy before calling it. 6e1410d
Commits on Nov 21, 2010
@zhengjia zhengjia Minor fix on Rails:Railtie documentation 55759a6
@jaimeiniesta jaimeiniesta i18n guide: it's activerecord.errors.messages.record_invalid (instead…
… of 'invalid'), and messagges typo
@jaimeiniesta jaimeiniesta i18n guide: remove link to external page about 'How to encode the cur…
…rent locale in the URL' as it no longer exists
@jaimeiniesta jaimeiniesta i18n guide: this is not longer a problem ff69c80
@neerajdotname neerajdotname unscoped takes care of named_scopes too a1786cf
@leohackin leohackin Fix code for customize the error messages html adding a .html_safe of…
… 8.3 section
@jaimeiniesta jaimeiniesta i18n guide: fix external link to rack locale ebac0f4
@nosolopau nosolopau Spelling mistake: "Projecto" instead of "projeto" 1e1711c
@jergason jergason fix some grammar issues with section 2.5 255e47d
@fxn fxn copy-edits d773ef8 d2f3ef1
@neerajdotname neerajdotname use_accept_header is no longer supported 27f43cc
@fxn fxn Spanish for "project" is "proyecto" 3565a2a
@fxn fxn documents <%== in the AS guide 28a0ee0
Commits on Nov 23, 2010
@balexand balexand Previous version inaccurately suggested that
resources :posts, :path => "/admin"

would route "/admin/posts" to the PostsController but it actually routed "/admin" to the PostsController
@davidw davidw Slightly more natural sounding phrase. 45aca62
@davidw davidw Explain that NamedBase makes the variable 'name' available to the scr…
@neerajdotname neerajdotname Revert "unscoped takes care of named_scopes too"
This reverts commit 126fbd7.
@raybaxter raybaxter fix typo 9332d2e
@jaimeiniesta jaimeiniesta i18n guide: fix RedCloth artifacts that were rendering bad format and…
… broken links on 2.3 warnings
@svenfuchs svenfuchs Allow registering javascript/stylesheet_expansions to existing symbols 55b13c5
Commits on Nov 24, 2010
@neerajdotname neerajdotname If a nested_attribute is being marked for destruction and at the same…
… time an attr_accessor value is being assigned then the value being assigned is being ignored. This patch is a fix for that issue.

[#5939 state:resolved]

Signed-off-by: José Valim <>
@neerajdotname neerajdotname If a user wants json output then try best to render json output. In s…
…uch cases prefer kind_of(String) over respond_to?(to_str)

[#5841 state:resolved]

Signed-off-by: José Valim <>
@raggi raggi Don't depend on rubygems loading thread (for Mutex) 08e9d0d
Commits on Nov 25, 2010
@josevalim josevalim Dynamically generaeted helpers on collection should not clobber resou…
…rces url helper [#6028 state:resolved]
Commits on Nov 26, 2010
@josevalim josevalim Only convert direct hash instances in hash with indifferent access. 6e66d61
@dhh dhh Merge branch '3-0-stable' of into 3-0-stable b7b28d5
Commits on Nov 27, 2010
@radar radar Fix formatting issue with rake routes output for the namespace method 9f795e1
@radar radar Remove non-sensical first couple of lines for scope method documentation 0f63a8a
@radar radar Add :module option documentation for the resources method 2b13f84
@radar radar Document the :path option for resources :posts 38246b3
@radar radar Add mention of nested resource to resources documentation 0fcd39a
@chuyeow chuyeow Fix missing word in ActionMailer::Base documentation. 86dba29
@radar radar There is no more routes_configuration_file method. d16067d
@radar radar Don't mention Rails 2.3, given that this is supposed to be a guide fo…
…r Rails *3*.
@radar radar Mention what cache_classes defaults to in all three default environments 592c7ae
@radar radar There is no controller_paths method in Rails 3 b1f3577
@radar radar There is no database_configuration_file method in Rails 3 6ee6bad
@radar radar load_once_paths is now autoload_paths in Rails 3 9815690
@radar radar There is no plugin_loader config option in Rails 3 555b184
@radar radar There is no plugin_locators config option in Rails 3 f74d7e8
@radar radar There is no plugin_paths config option in Rails 3 d626e13
@radar radar There is no root_path config option in Rails 3 f0cc3a1
@radar radar There is no view_path config option in Rails 3 c6eae7a
@radar radar There is no config.action_controller.params_parser method for Rails 3…
…. This is now handled by the ActionDispatch::ParamsParser middleware.
@radar radar Separate Action Dispatch and Action Pack sections in Configuration Gu…
@radar radar There is no config.action_view.warn_cache_misses method for Rails 3 a6a50c2
@radar radar There is no config.action_mailer.template_root method for Rails 3 723d3e2
@radar radar Update ActionMailer documentation to not use deprecated template_root…
… method as documentation, but rather raise_delivery_errors method
@radar radar There is no config.action_mailer.default_charset method for Rails 3 536bbf9
@radar radar There is no config.action_mailer.default_content_type method for Rails 3 5483b35
@radar radar Mention the default config.action_mailer.default options in Configura…
…tion guide
@radar radar There is no config.action_mailer.default_implicit_parts_order method …
…for Rails 3
@radar radar There is no RAILS_GEM_VERSION environment variable or constant for Ra…
…ils 3, since this is now managed by Bundler
@radar radar Update Changelog for configuring guide 5b5d3e5
@radar radar root_path is now simply root in Rails 3 78d782f
@radar radar There is no more load_application_initializers in Rails 3 fb661f3
@radar radar Add mention of after_initialize to the config guide a571d4b
@radar radar Added documentation for config.generators to the config guide 550ac57
@asanghi asanghi Resolving LH #5986, cookies doc updates abe28bf
@andmej andmej Added missing word. ab42529
@andmej andmej Mentioning catch with Bundler remembering options between different c…
@radar radar Add mention of config.serve_static_assets to config guide 9c6afa7
@radar radar Add explicit statement that verify_authenticity_token can be turned o…
…ff for actions.
@radar radar Add "Configuring Middleware" section to config guide, starting with m…
…entioning what every bit of middleware does.
@radar radar Add methods for configuring middleware to config guide 2d8c104
@mikel mikel Application templates should work with HTTPS too eb27d80
Commits on Nov 28, 2010
@spastorino spastorino Fix test 2f09a5a
@spastorino spastorino Fix another error in tests 5c21c1c
@spastorino spastorino Revert f1c13b0 75015d1
Commits on Nov 29, 2010
@jhawthorn jhawthorn test case on has_one :through after a destroy
[#6037 state:resolved]

Signed-off-by: José Valim <>
Commits on Dec 01, 2010
@thilo thilo ActiveModel::Errors.to_hash returns plain OrderedHash and used in to_…
…json serialization to properly handle multiple errors per attribute

Signed-off-by: José Valim <>
@tenderlove tenderlove avoid deprecated methods a5e7d9f
Commits on Dec 02, 2010
@NZKoz NZKoz Work around a strange piece of Syck behaviour where it checks Model#r…
…espond_to? before initializing the object.

Things like YAML.load(YAML.dump(@post)) won't work without this.
@tenderlove tenderlove fixing space errors c42a7c6
@tenderlove tenderlove adding a test for YAML round trip 873616c
Commits on Dec 05, 2010
Peter Baker Explain actionamailer authentication types 4808875
@kotfu kotfu Fixed typo in code for Session Expiry 6f6a24e
@gjastrab gjastrab fixed example code for i18n exception handling 6f32809
@cylence cylence Corrected typo and wording. 1c6effc
@asanghi asanghi Resolves LH #6063, should be :expires_in not :expire_in b05b8d9
@asanghi asanghi grammar fix c793baa
@amatsuda amatsuda Added a space before "do" keyword 7da5f75
@amatsuda amatsuda s/myqsl/mysql/ 97e8bf6
@neerajdotname neerajdotname make it clear that recompilation happens only in
development mode
@radar radar Mention filter_parameters for config 27ce3e2
@radar radar Add documentation for secret_token to config guide cbe64d0
@radar radar allow_concurrency is a "global" configuration option in Rails 3 a99dc08
@radar radar Mention threadsafe! method in config guide 08f6b4e
@radar radar Change coloriz_logging description to follow the standard for this guide cbea902
@radar radar Move consider_all_requests_local to global config methods in config g…
@radar radar Move threadsafe warning to threadsafe's new location in config guide 9dc463b
@radar radar Mention controller_paths in the config guide 95ac8b0
@radar radar No more app_generators method in 3.1 ebc52a8
@radar radar Add asset_host and asset_path to the configuring guide 195d0b7
@radar radar Mention encoding in config guide 78b480c
@radar radar Add mention of helper_paths to config guide 730480a
@radar radar Reorder logger and middleware global config options b6bcfcb
@radar radar asset_host and asset_path are now set at the global level a416766
@radar radar Fix documentation regarding the initialization events of the Rails stack 04507ac
@radar radar Use ARel for Range Conditions section, remove Date & Time section bec…
…ause users should *never* do that.
@radar radar Bring order description in line with actual text. abc7e38
@radar radar re-add config.action_controller.asset_host and asset_path to config g…
@radar radar Add documentation for page_cache_directory and page_cache_extension t…
…o config guide
@radar radar Add perform_caching to config guide 554e89f
@neerajdotname neerajdotname Rewording existing comment e6f2ef3
@neerajdotname neerajdotname Add comment for config_accessor method 30d7a71
@neerajdotname neerajdotname Rewording existing comment 2b26ba6
@radar radar Mention that the documentation of create_file can be found on…
…fo ino the generators guide
@radar radar Begin covering application templates in the generators guide 40f7246
@radar radar Covering generator methods provided by Rails in the generators guide feab0b8
@radar radar For templates' gem method, :env is deprecated, use :group instead 4548c84
@radar radar Add gem method documentation to the generators guide 9177e93
@radar radar Finish documenting generator / template methods for the generators guide a86be8c
@radar radar Add missing colons on the end of before_initialize and after_initiali…
…ze documentation in configuring guide
@radar radar Add mention of config.to_prepare in configuring guide 350818f
@radar radar Config guide: Rails has *5* initialization events ceb650a
@radar radar Configuring guide: Adding mention of the initializer method. f7c85da
@radar radar Move Rails Environment settings to above the initialization events in…
… the config guide
@radar radar Config guide: separate the initialization events and initializer meth…
…od documentation
@radar radar Config guide: Add config.active_support.bare 4e2f947
@radar radar Clarify that preload_frameworks defaults to nil f02c89f
@radar radar Config guide: clarify what cache_store defaults to. c3e8bf0
@radar radar Config guide: Mention ActionDispatch::Callbacks methods: before, to_p…
…repare and after
@radar radar Remove extra f 2021596
@radar radar Config guide: add tld_length to ActionDispatch section 488992f
@radar radar Config guide: Add cache_asset_ids 1a7958d
@radar radar Config guide: should use config.action_dispatch.tld_length to set the…
@radar radar Config guide: Add javascript_expansions and stylesheet_expansions 85ced0f
@radar radar Config guide: begin documenting the initializers 2484b7e
@radar radar Config guide: continuing work on documenting the initializers 13a7302
Commits on Dec 08, 2010
@neerajdotname neerajdotname Add to documentation that action caching does
handle HTTP_ACCEPT attribute properly and might
provide wrong result. Use params[:format] to
avoid this issue.
@fxn fxn makes a pass to the action caching rdoc 75faf54
@asanghi asanghi Ensure that boolean false is properly serialized [#6079 state:resolved] 97e9d88
Commits on Dec 09, 2010
@michaeldv michaeldv Take into account current time zone when serializing datetime values [#…
…6096 state:resolved]

Signed-off-by: José Valim <>
@neerajdotname neerajdotname Ensure that while caching a page rails takes into
account the resolved mime type for the request

This is a port of fix on master to 3-0-stable

Signed-off-by: José Valim <>
@neerajdotname neerajdotname Do not send id for quoting twice if the primary key is string.
[#6022 state:resolved]
@tenderlove tenderlove just wrap as a sql literal 60744d2
Robert Pankowecki (Gavdi) Simplifies observer implementation [#6065 state:resolved] 61f2d52
@matthewrudy matthewrudy Fix Bug: disable_referential_integrity doesn't work for postgres 9.0.1 f33968a
@matthewrudy matthewrudy Cleaner way to extract the Postgres version d2003a2
Commits on Dec 10, 2010
@git2samus git2samus typo b4b6ffe
Commits on Dec 11, 2010
@vijaydev vijaydev fixed typo in test method name ab88074
@lucascaton lucascaton Fix link on generations' page 6103f8f
@evtuhovich evtuhovich Fix doc about nested transaction rollback
Because AR::Rollback do not reraise and inner transaction is not "real"
nothing rollback at all
@radar radar Config guide: eager_load_paths by default contains every directory in…
… the app directory
@radar radar Config guide: add session store config option 92668f6
@radar radar Config guide: add further initializers f0029d0
@radar radar Config guide: Space out initialization events to improve readability 85a940f
@radar radar Add note which links to documentation regarding the types of columns …
@radar radar Config guide: Use bold titles for initializers instead of headings. 8aec8b8
@radar radar Move ActiveModel::Lint::Tests documentation to be above module declar…
…ation so it appears in the API docs for this module.
@radar radar mapper.rb: add "options" to make the default-to-namespace-name line r…
…ead better
@radar radar indent code samples for mount doc d3d23e2
@radar radar root route should go at the *top* of the routes file, because it is t…
…he most popular route and should be matched first
@radar radar root method options are the same as the match method 55a232a
@radar radar Action Controller Overview: Remove dead link to the API docs for filters 6276334
@vijaydev vijaydev fixed typos and rephrased few sentences in routing 51202a1
@fxn fxn testing guide: revises explanation of the test macro 01c76d5
@fxn fxn spaces with underscores, I mean 37b9d02
@fxn fxn reviews commit 53bbbcc 9254750
Commits on Dec 15, 2010
@radar radar Provide an example for ActionDispatch::Routing::Mapper#scope f5c15a4
@paulodeon paulodeon Updated generator guide for rails commit 7891de8 ee9fea6
@vijaydev vijaydev fixed typos and rephrased a few sentences; also removed reference to …
…status codes being located in action_controller/status_codes.rb
@vijaydev vijaydev fixed typos in mailer f840d5c
@radar radar Remove nodoc from FormBuilder because the methods inside are public A…
…PI methods
@radar radar Fix indentation on the namespace method's documentation 6bf482e
@umarsheikh umarsheikh for the root route to work, we need to delete the public/index.html.erb
file as well
@remear remear Added :placeholder option to ActionView::Helpers::FormTagHelper text_…
@elben elben It should be ActiveModel::Validator, not ActiveRecord::Validator. 463522a
@radar radar Active Support coreext guide: Logger core extension documentation 3392b56
@asanghi asanghi eternal confusion! fixed doco to inform correctly dfecb3f
@vijaydev vijaydev filter_parameter_logging is deprecated in Rails 3. Changed it to conf…
@vijaydev vijaydev fixed font 0a42961
@vijaydev vijaydev fixed link to ruby-prof acd716b
Commits on Dec 17, 2010
@drogus drogus Allow to use BUNDLE_GEMFILE env variable in boot.rb [#6184 state:reso…
@drogus drogus Use require 'bundler/setup' instead of directly calling Bundler.setup…
… in config/boot.rb
Commits on Dec 18, 2010
@dontangg dontangg Fixed number_with_precision rounding error [#6182 state:resolved] 177749b
@drogus drogus Use gemspec instead of gem rails in Gemfile f2fc81f
@dhh dhh Merge branch '3-0-stable' of into 3-0-stable c09c8be
Commits on Dec 22, 2010
@drogus drogus Fix activesupport tests. These classes are not used anywhere d4cf636
@johnpaulashenfelter johnpaulashenfelter Added a word boundary to uncountable inflection regex for #singulariz…
…e so short inflections like ors do not affect larger words like sponsors [#6093 state:resolved]
@drogus drogus Ensure that uncountable are removed after test 725817e
@spastorino spastorino Avoid Bundler Resolver bug until they solve the issue 053031b
@spastorino spastorino This can make make included javascripts/stylesheets from expansions t…
…o be duplicated

or grow forever if you call register_*_expansion more than once

Fix a Regression introduced here 55b13c5
@fxn fxn API guidelines: RDoc markup documentation has been moved in RDoc 3 bbb2252
Commits on Dec 23, 2010
@jonleighton jonleighton Test to verify that #2189 (count with has_many :through and a named_s…
…cope) is fixed [#2189 state:resolved]
@jonleighton jonleighton Fix problem where wrong keys are used in JoinAssociation when an asso…
…ciation goes :through a belongs_to [#2801 state:resolved]
Commits on Dec 28, 2010
@fxn fxn complete revision of the Contributing to Ruby on Rails guide
* adds instructions for PostgreSQL
* adds references to mysql2 here and there
* puts documentation contributions on par with code contributions
* adds a section about Rails Contributors
* documents C dependencies for Nokogiri and the database libs
* everything double-checked and revised step by step
* adds a section about warnings in the test suite
* removes section about the Rails wiki
* title and filename renamed
* overall rewording
Commits on Dec 29, 2010
@lifo lifo Make serialized fixtures work again

@fxn fxn since a lot of people use Ubuntu, document specific aptitude calls fo…
…r some C dependencies in the contrib guide
@fxn fxn renames the contrib guide in the index a2ddf5a
Commits on Dec 30, 2010
@apotonick apotonick process_action accepts multiple args, even with Callbacks. 8d1a318
@fxn fxn contrib_guide.gsub!("aptitude", "apt-get")
It turns out aptitude has been removed from Ubuntu 10.10
and while you can manually install it, apt-get is the
blessed package manager. Google for "aptitude removed
from Ubuntu" for more details. Thanks to Rafael Mendonça
França for pointing this out.
@lifo lifo Make sure Model#touch doesn't try to update non existing columns a49a84f
Commits on Jan 01, 2011
@sikachu sikachu Make sure that generator's default banner is showing its namespace
This will make `rails g rspec:install --help` shows "rails generate rspec:install [options]" and not "rails generate install  [options]"
Commits on Jan 03, 2011
Robert Pankowecki (Gavdi) Added one more failing test for bug #6036 af2999d
Robert Pankowecki (Gavdi) Use id instead of quoted_id to prevent double quoting. Fixes failing …
…test for bug #6036.
Commits on Jan 04, 2011
@lifo lifo Bump rack-test version b7bb795
Commits on Jan 05, 2011
Hemant Kumar fix difference between behaviour of blank and empty
Signed-off-by: José Valim <>
Commits on Jan 09, 2011
@lardawge lardawge Backport tests for subclassed arrays 9bc338e
@jrallison jrallison Improve select helpers by allowing a selected value of false. This is…
… useful when using a select helper with a boolean attribute, and the attribute is false. (e.g. :allow_comments)
@bluetrans-deploy bluetrans-deploy use Object#class instead of Object#type 9933859
Commits on Jan 10, 2011
@krekoten krekoten Refactor to handle the X-Cascade without having to raise an exception 117cad8
@bluetrans-deploy bluetrans-deploy primary_key is returned as either string or symbol, in columns loop m…
…ap everything to string
@tenderlove tenderlove calculate to_s on the primary key once 09f3736
@tenderlove tenderlove use SQLite3::VERSION rather than the deprecated class b7e5a64
@rsim rsim Always return decimal average of integer fields
In previous version if database adapter (e.g. SQLite and Oracle) returned non-String calculated values then type_cast_using_column converted decimal average value of intefer field to integer value. Now operation parameter is always checked to decide which conversion of calculated value should be done.
@tenderlove tenderlove adding to_d to BigDecimal 2cb497b
Commits on Jan 11, 2011
@ernie ernie Fix polymorphic belongs_to associationproxy raising errors when loadi…
…ng target.
Commits on Jan 12, 2011
@spastorino spastorino CI should run isolated tests 3b9e72b
@spastorino spastorino Allow view in AV::TestCase to access it's controller helpers methods 3f247cb
@joshk joshk In AS, only inflector/methods is need in proxy_wrappers.rb, as well a…
…s date, date_time, and time conversions.rb. This fixes an issue when requiring json and AS saying that i18n is also required.

Signed-off-by: Santiago Pastorino <>
@joshk joshk Fixed various isolated test missing requires within AS.
Signed-off-by: Santiago Pastorino <>
@tenderlove tenderlove sorry, the CI cannot lie to us anymore 4781673
@tenderlove tenderlove reraising should be in the rescue block 20062e7
@tenderlove tenderlove use raise to create exceptions and to set the backtrace 8874733
@tenderlove tenderlove remove locales external to the system before assertion 58f90b2
@spastorino spastorino Reuse the view_context from the controller, this make the test enviro…
…nment more similar to the code applications uses
@fxn fxn upgrades RDoc and horo dependencies
RDoc 2.x was missing some stuff, let's align this with master
@spastorino spastorino Allow generators nested in more than one level 3667438
Commits on Jan 13, 2011
@tenderlove tenderlove include_in_memory? should check against @target list in case of new r…
…ecords. [#6257 state:resolved]
@spastorino spastorino Add missing require 0f5e815
@spastorino spastorino One more missing require f4dcf19
@spastorino spastorino sorry, the CI cannot lie to us anymore (Part II) 460f173
Commits on Jan 16, 2011
@tenderlove tenderlove updating sqlite3-ruby => sqlite3 9d87f41
@jonleighton jonleighton Added deprecation warning for has_and_belongs_to_many associations wh…
…ere the join table has additional attributes other than the keys. Access to these attributes is removed in 3.1. Please use has_many :through instead.
Commits on Jan 17, 2011
@tenderlove tenderlove minitest added @__io__, so we should ignore it too a58670b
Commits on Jan 18, 2011
@NZKoz NZKoz Use the derived request_method from AD::Request rather than the raw R…
…EQUEST_METHOD from rack.

This takes _method into account so the log shows the method which ActionController sees.
@tenderlove tenderlove Changing sqlite3-ruby to sqlite3. backporting 8f88a28 to 3-0-stable. 97d4766
Commits on Jan 19, 2011
@jamis jamis make TestCaseTest work for pre-1.9 rubies, too fd19ade
@jamis jamis scrub instance variables from test cases on teardown
this prevents test state from accumulating, resulting in leaked
objects and slow tests due to overactive GC.
@jamis jamis rein in GC during tests by making them run (at most) once per second
this can provide a significant performance boost during testing, by
preventing the GC from running too frequently.
Frank Fischer Added a testcase for bug [#5329]
Signed-off-by: José Valim <>
@josevalim josevalim Solve SystemStackError when changing locale inside ActionMailer [#5329
@jamis jamis Revert "rein in GC during tests by making them run (at most) once per…
… second"

This reverts commit 35984f5.
@jamis jamis Revert "scrub instance variables from test cases on teardown"
This reverts commit 1e98920.
@jamis jamis Revert "make TestCaseTest work for pre-1.9 rubies, too"
This reverts commit fd19ade.
Commits on Jan 24, 2011
@tenderlove tenderlove Merge remote branch 'jonleighton/deprecate_habtm_attributes-3-0-stabl…
…e' into 3-0-stable

* jonleighton/deprecate_habtm_attributes-3-0-stable:
  Added deprecation warning for has_and_belongs_to_many associations where the join table has additional attributes other than the keys. Access to these attributes is removed in 3.1. Please use has_many :through instead.
Commits on Jan 28, 2011
@spastorino spastorino Bump mail version up 5f509c2
Commits on Jan 29, 2011
@mikel mikel Fix gitignore to ignore tmp/ correctly, credit telemachus 54e72a5
Commits on Jan 30, 2011
@NZKoz NZKoz Prepare for the 3.0.4 release 0cbf9b2