aboutsummaryrefslogtreecommitdiffstats
path: root/railties
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'dump-schema-after-migration-flag' of ↵Xavier Noria2014-02-064-0/+60
|\ | | | | | | | | | | | | git://github.com/emilsoman/rails into emilsoman-dump-schema-after-migration-flag Conflicts: activerecord/CHANGELOG.md
| * Add config to disable schema dump after migrationEmil Soman2014-02-064-0/+60
| | | | | | | | | | | | | | | | | | * Add a config on Active Record named `dump_schema_after_migration` * Schema dump doesn't happen if the config is set to false * Set default value of the config to true * Set config in generated production environment file to false * Update configuration guide * Update CHANGELOG
* | synchronize 4.1 release notes with CHANGELOGS. [ci skip]Yves Senn2014-02-061-1/+1
|/ | | | /cc @chancancode
* Merge pull request #13612 from eval/issue-13588Rafael Mendonça França2014-01-304-16/+230
|\ | | | | Add CreateMigration action
| * Add CreateMigration actionGert Goet2014-01-284-16/+230
| | | | | | | | | | | | | | | | | | | | This Thor-action isolates the logic whether to (over-)write migration and what is shown to the user. It's modelled after Thor's CreateFile-action. This solves the issue that removing a non-existing migration, tried to remove the template-path (#13588). Related issues: #12674
* | Modify the session serializer implementationGuillermo Iguaran2014-01-302-2/+2
| | | | | | | | | | Rename allowed options to :marshal and :json, for custom serializers only allow the use of custom classes.
* | Enhance errors while retrieving database configschneems2014-01-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now if there is an error retrieving database configuration the intent of the error (what the code was trying to do while you got the error) could be more explicit. Instead of this error: ``` Invalid DATABASE_URL: nil (erb):9:in `rescue in <main>' (erb):6:in `<main>' /Users/schneems/.rbenv/versions/2.1.0/lib/ruby/2.1.0/erb.rb:850:in `eval' /Users/schneems/.rbenv/versions/2.1.0/lib/ruby/2.1.0/erb.rb:850:in `result' /Users/schneems/Documents/projects/rails/railties/lib/rails/application/configuration.rb:98:in `database_configuration' /Users/schneems/Documents/projects/rails/activerecord/lib/active_record/railtie.rb:41:in `block in <class:Railtie>' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `instance_exec' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `block in run_tasks_blocks' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `each' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `run_tasks_blocks' /Users/schneems/Documents/projects/rails/railties/lib/rails/application.rb:339:in `block in run_tasks_blocks' /Users/schneems/Documents/projects/rails/railties/lib/rails/engine/railties.rb:13:in `each' ``` I propose we issue this error: ``` Cannot load `Rails.application.database_configuration`: Invalid DATABASE_URL: nil (erb):9:in `rescue in <main>' (erb):6:in `<main>' /Users/schneems/.rbenv/versions/2.1.0/lib/ruby/2.1.0/erb.rb:850:in `eval' /Users/schneems/.rbenv/versions/2.1.0/lib/ruby/2.1.0/erb.rb:850:in `result' /Users/schneems/Documents/projects/rails/railties/lib/rails/application/configuration.rb:98:in `database_configuration' /Users/schneems/Documents/projects/rails/activerecord/lib/active_record/railtie.rb:41:in `block in <class:Railtie>' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `instance_exec' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `block in run_tasks_blocks' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `each' /Users/schneems/Documents/projects/rails/railties/lib/rails/railtie.rb:237:in `run_tasks_blocks' /Users/schneems/Documents/projects/rails/railties/lib/rails/application.rb:339:in `block in run_tasks_blocks' /Users/schneems/Documents/projects/rails/railties/lib/rails/engine/railties.rb:13:in `each' ```
* | Allow session serializer key in config.session_storeLukasz Sarnacki2014-01-293-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | MessageEncryptor has :serializer option, where any serializer object can be passed. This commit make it possible to set this serializer from configuration level. There are predefined serializers (:marshal_serializer, :json_serialzier) and custom serializer can be passed as String, Symbol (camelized and constantized in ActionDispatch::Session namepspace) or serializer object. Default :json_serializer was also added to generators to provide secure defalt.
* | Merge pull request #13857 from teoljungberg/replace-file-exists-ehCarlos Antonio da Silva2014-01-271-1/+1
|\ \ | |/ |/| Replace File.exists? with File.exist?
| * Replace File.exists? with File.exist?Teo Ljungberg2014-01-271-1/+1
| | | | | | | | To quell warnings on ruby 2.1
* | Rails config for raise on missing translationsKassio Borges2014-01-272-0/+6
|/ | | | | Add a config to setup whether raise exception for missing translation or not.
* Correct grammar from '... allowing both thread web servers ...' to '... ↵Adrien Lamothe2014-01-251-1/+1
| | | | allowing both threaded web servers ...'.
* Add a missing changelog entry for #13825 [ci skip]Robin Dupret2014-01-251-0/+6
|
* Add a test-case for GH #13825Guillermo Iguaran2014-01-241-2/+8
|
* app_rails_loader.rb should check if bin/rails is a File before calling ↵Byron Bischoff2014-01-241-1/+1
| | | | File.read(exe); closes #13825
* Merge pull request #13696 from senny/engine_bin_rails_load_bundlerYves Senn2014-01-211-0/+4
|\ | | | | setup Bundler in engines `bin/rails` stub.
| * setup Bundler in engines `bin/rails` stub.Yves Senn2014-01-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | This is necessary when bundling gems locally using `BUNDLE_PATH`. Without this patch `bin/rails` fails with: ``` /Users/senny/.rbenv/versions/2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- rails/all (LoadError) from /Users/senny/.rbenv/versions/2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from bin/rails:7:in `<main>' ```
* | moving controller_name assignment before model name conditionanilmaurya2014-01-201-3/+1
| |
* | Update Changelog, Spring is under rails/spring [ci skip]robertomiranda2014-01-191-1/+1
| |
* | spring gem moved to rails/springWashington Luiz2014-01-181-1/+1
| |
* | Unify changelog entries about single quotes [ci skip]Carlos Antonio da Silva2014-01-151-5/+1
| |
* | Use single quotes in generated filesChulki Lee2014-01-145-12/+16
| |
* | single quotes for controller generated routesCristian Mircea Messel2014-01-144-6/+10
| | | | | | | | | | | | | | | | | | | | Write routes in route.rb with single quotes get 'welcome/index' instead of get "welcome/index"
* | Favor canonical environment variables for secretsschneems2014-01-132-3/+3
| | | | | | | | | | | | | | | | | | Prefixing an environment variable with `RAILS_` should be used when there is otherwise a conflict, such as `RAILS_ENV` or if it is being used for a very Rails specific value. If we remove the prefix of `RAILS_` in the case of `RAILS_SECRET_KEY_BASE` then we can push for a pseudo standard among other frameworks that will accept a common environment key `SECRET_KEY_BASE` to keep your app secure. This is beneficial for containerized deployments such as docker, Heroku, etc. So that the container need to know one less thing about your app (it can just set it no-matter what language or framework you are using). This change also allows the defaults to be consistent with the way the secret key is accessed so `secrets.secret_key_base` is aliased to `SECRET_KEY_BASE` instead of `RAILS_SECRET_KEY_BASE`.
* | Only lookup `config.log_level` for stdlib `::Logger`. Closes #11665.Yves Senn2014-01-133-2/+26
| | | | | | | | | | | | | | | | This prevents Rails from assigning meaningless log levels to third party loggers like log4r. If `Rails.logger` is not `kind_of?(::Logger)` we simply assign the `config.log_level` as is. This bug was introduced by #11665.
* | standardize on jruby_skip & rbx_skipGaurish Sharma2014-01-132-2/+11
|/ | | | | | This Adds helpers(jruby_skip & rbx_skip). In Future, Plan is to use these helpers instead of calls directly to RUBY_ENGINE/RbConfig/JRUBY_VERSION
* Skip Spring App Generator tests on JRubyGaurish Sharma2014-01-131-0/+2
| | | | | Spring makes extensive use of Process.fork, so won't be able to provide JRuby Support, hence skip these tests on JRuby.
* fixes a typo in a CHANGELOGXavier Noria2014-01-121-1/+1
|
* upgrade SDocXavier Noria2014-01-123-3/+7
| | | | Kudos to @zzak for taking over SDoc and make it work with RDoc 4.
* fixes the Gemfile generator templatesXavier Noria2014-01-122-8/+4
| | | | | | The templates were written as if for a given gem you could either pass a version or options, but not both. But you may want to specify a version and also a group or whether the gem has to be required, for example.
* Removing without_thor_debugArun Agrawal2014-01-111-13/+3
| | | | | a1d0c0fa3d8ca97edc8f2a1d6ba96af19221dbad as bundler 1.5.2 is out now
* Ensure Active Record connection consistencyschneems2014-01-093-10/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently Active Record can be configured via the environment variable `DATABASE_URL` or by manually injecting a hash of values which is what Rails does, reading in `database.yml` and setting Active Record appropriately. Active Record expects to be able to use `DATABASE_URL` without the use of Rails, and we cannot rip out this functionality without deprecating. This presents a problem though when both config is set, and a `DATABASE_URL` is present. Currently the `DATABASE_URL` should "win" and none of the values in `database.yml` are used. This is somewhat unexpected to me if I were to set values such as `pool` in the `production:` group of `database.yml` they are ignored. There are many ways that active record initiates a connection today: - Stand Alone (without rails) - `rake db:<tasks>` - ActiveRecord.establish_connection - With Rails - `rake db:<tasks>` - `rails <server> | <console>` - `rails dbconsole` We should make all of these behave exactly the same way. The best way to do this is to put all of this logic in one place so it is guaranteed to be used. Here is my prosed matrix of how this behavior should work: ``` No database.yml No DATABASE_URL => Error ``` ``` database.yml present No DATABASE_URL => Use database.yml configuration ``` ``` No database.yml DATABASE_URL present => use DATABASE_URL configuration ``` ``` database.yml present DATABASE_URL present => Merged into `url` sub key. If both specify `url` sub key, the `database.yml` `url` sub key "wins". If other paramaters `adapter` or `database` are specified in YAML, they are discarded as the `url` sub key "wins". ``` ### Implementation Current implementation uses `ActiveRecord::Base.configurations` to resolve and merge all connection information before returning. This is achieved through a utility class: `ActiveRecord::ConnectionHandling::MergeAndResolveDefaultUrlConfig`. To understand the exact behavior of this class, it is best to review the behavior in activerecord/test/cases/connection_adapters/connection_handler_test.rb though it should match the above proposal.
* MySQL version 4.1 was EOL on December 31, 2009Zachary Scott2014-01-081-1/+1
| | | | We should at least recommend modern versions of MySQL to users.
* add a more restricted codepath for templates fixes #13390Aaron Patterson2014-01-082-12/+51
|
* Merge pull request #13637 from craftsmen/app-generator-minor-fixRafael Mendonça França2014-01-081-4/+4
|\ | | | | Move finish_template as the last public method defined in the generator
| * Move finish_template as the last public method in the generatorMehdi Lahmam2014-01-081-4/+4
| |
* | refactor generator tests to use block form of TempfileAaron Patterson2014-01-081-36/+30
|/
* Fix rdoc markup [ci skip]Carlos Antonio da Silva2014-01-061-1/+1
| | | | Wrapping symbols with + does not work, we must use <tt> instead.
* Add missing tests for invalid names in `rails plugin new`Robin Böning2014-01-061-0/+6
| | | | | * Test for: Invalid plugin name, because of reserved rails word. * Test for: Invalid plugin name because of constant name that is already in use.
* Add preview_path to autoload_paths in after_initializeAndrew White2014-01-041-1/+41
| | | | | | | | | | Only config.autoload_paths is frozen, so add the preview_path to ActiveSupport::Dependencies.autoload_paths directly in an after_initialize block. Also protect against a blank preview_path being added to autoload_paths which can cause a serious slowdown as Dir[] tries to load all *_preview.rb files under / Fixes #13372
* Change all "can not"s to the correct "cannot".T.J. Schuck2014-01-031-1/+1
|
* Use DATABASE_URL by defaultschneems2014-01-0212-19/+12
| | | See https://github.com/rails/rails/pull/13463#issuecomment-31480799 for full conversation.
* Automatically maintain test database schemaJon Leighton2014-01-026-5/+65
| | | | | | | | | | | | | | * Move check from generated helper to test_help.rb, so that all applications can benefit * Rather than just raising when the test schema has pending migrations, try to load in the schema and only raise if there are pending migrations afterwards * Opt out of the check by setting config.active_record.maintain_test_schema = false * Deprecate db:test:* tasks. The test helper is now fully responsible for maintaining the test schema, so we don't need rake tasks for this. This is also a speed improvement since we're no longer reloading the test database on every call to "rake test".
* Reverse 821525e and wrap run_generator callAndrew White2014-01-021-3/+13
| | | | | | Ruby 2.1.0 includes the json gem 1.8.1 by default so we need bundler 1.5.1 for `bundle install` to work. To fix this reverse the downgrade to 1.3.5 and wrap the `run_generator` call with a block that resets `THOR_DEBUG`.
* Adding missing requireRafael Mendonça França2014-01-021-0/+1
|
* Move default production database to URL sub keyschneems2014-01-0111-12/+26
| | | | By using the URL sub key in the `database.yml` by default we are exposing the ability to set other attributes such as `pool` or `reap_frequency` without need of modifying the URL to contain non-connection specific information.
* update copyright notices to 2014. [ci skip]Vipul A M2014-01-011-1/+1
|
* Fix comment syntaxBrian Cardarella2013-12-311-1/+1
| | | | The code syntax in the comment example is invalid
* rbconfig is not used in these filesArun Agrawal2013-12-262-2/+0
| | | | remove unused requires
* Improve font of some code in API documentation [ci skip]Chun-wei Kuo2013-12-263-12/+12
| | | | | * Add "<tt>" or "+" to improve font of some code and filenames in API documentation * Does not contain wording changes