aboutsummaryrefslogtreecommitdiffstats
path: root/railties
Commit message (Collapse)AuthorAgeFilesLines
* Prevent to install gems when run test (#31564)Yuji Yaginuma2017-12-262-4/+12
| | | | | | `invoke_all` cause `bundle install`. This will install gems actually defined in `Gemfile`. To avoid this, stubbed `bundle_command`. Fixes #31557
* Ensure to use repo's Gemfile in applicationyuuji.yaginuma2017-12-251-0/+5
| | | | | | | | | Puma gets bundler's info from `Bundler::ORIGINAL_ENV` for restart. https://github.com/puma/puma/blob/f6f3892f4d82638fb7a2a57d993641b1486ee88a/lib/puma/launcher.rb#L168 So, specified `BUNDLE_GEMFILE` env for use same Gemfile in the restart. Fixes #31351
* Move `test_skip_bundle` to `AppGeneratorTest`yuuji.yaginuma2017-12-242-9/+9
| | | | `skip_bundle` option was removed from plugin generator in 9b72fcc3c22a6f75f37f52dd6cb682bc00c51cf0.
* Removes OS specific directory separatorDaniel Lopez2017-12-211-1/+1
|
* Merge pull request #31520 from yahonda/introduce_frozen_error_classRyuta Kamizono2017-12-202-1/+5
|\ | | | | Handle `FrozenError` if it is available
| * Handle `FrozenError` if it is availableYasuo Honda2017-12-202-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This pull request handles `FrozenError` introduced by Ruby 2.5. Refer https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/61131 Since `FrozenError` is a subclass of `RuntimeError` minitest used by master branch can handle it, though it would be better to handle `FrozenError` explicitly if possible. `FrozenError` does not exist in Ruby 2.4 or lower, `frozen_error_class` handles which exception is expected to be raised. This pull request is intended to be merged to master, then backported to `5-1-stable` to address #31508
* | Add test case that configure `config.active_support.hash_digest_class`yuuji.yaginuma2017-12-201-0/+18
| | | | | | | | Follow up of #31289.
* | Remove verbose_query_logs from new_framework_defaults_5_2.rbEugene Kenny2017-12-201-3/+0
| | | | | | | | | | | | | | | | | | | | | | The `app:update` rake task will regenerate `development.rb` so that it contains this option; that means we're currently adding it to existing apps in two places, which is unnecessary and confusing. Also: - Remove inaccurate comment about which stack frames are ignored - Clarify that the feature uses `caller_locations`, not `caller` - Remove unused return value in `extract_callstack`
* | Implicitly skip bootsnap for `rails new --dev`yuuji.yaginuma2017-12-192-1/+12
|/ | | | | | | Specifying the `--dev` option is when want to change the codebase, as it is not necessary to cache it. Context: https://github.com/rails/rails/pull/31485#issuecomment-352452653
* Merge pull request #31348 from y-yagi/fix_31283Kasper Timm Hansen2017-12-189-16/+71
|\ | | | | Raise an error only when `require_master_key` is specified
| * Raise an error only when `require_master_key` is specifiedyuuji.yaginuma2017-12-189-16/+71
| | | | | | | | | | | | | | | | | | To prevent errors from being raise in environments where credentials is unnecessary. Context: https://github.com/rails/rails/issues/31283#issuecomment-348801489 Fixes #31283
* | Update new_framework_defaults_5_2.rb.ttAnton Rieder2017-12-181-1/+1
| | | | | | Be consistent in comments when mentioning AES.
* | Merge pull request #31485 from y-yagi/skip_bootsnap_optionEileen M. Uchitelle2017-12-184-0/+31
|\ \ | |/ |/| Add `skip_bootsnap` option
| * Add `skip_bootsnap` optionyuuji.yaginuma2017-12-164-0/+31
| | | | | | | | | | | | `bootsnap` is a useful gem normally. However, `bootsnap` is unnecessary when generating a Rails application to be used only for testing. So I want to control whether use this or not by option.
* | Add test case that active_storage:install task works within engineyuuji.yaginuma2017-12-171-0/+15
|/ | | | Follow up of #31391
* Merge pull request #31434 from olivierlacan/boot-feedbackSean Griffin2017-12-141-0/+4
|\ | | | | Provide instant feedback when booting Rails
| * Provide instant feedback when booting RailsOlivier Lacan2017-12-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've noticed during pair/mob programming sessions with peers that despite the speed boosts provided by Bootsnap and Spring, there is a noticeable latency between firing a bin/rails server command and any feedback being provided to the console. Depending on the size of the application this lack of feedback can make it seem like something is wrong when Rails is simply busy initializing. This change may seem gratuitous but by just printing one line to STDOUT we're giving a clear signal to the Rails user that their command has been received and that Rails is indeed booting. It almost imperciptibly makes Rails feel more responsive. Sure the code doesn't look very fancy but there's no other appropriate place I could think of putting it than boot.rb. Compare these two GIFs of booting without and with this change: Before: ![Without Boot Feedback](https://user-images.githubusercontent.com/65950/33964140-721041fc-e025-11e7-9b25-9d839ce92977.gif) After: ![With Boot Feedback](https://user-images.githubusercontent.com/65950/33964151-79e12f86-e025-11e7-93e9-7a75c70d408f.gif)
* | Merge pull request #26815 from olivierlacan/log-query-sourceEileen M. Uchitelle2017-12-144-4/+17
|\ \ | | | | | | Log the original call site for an ActiveRecord query
| * | Log call site for all queriesOlivier Lacan2017-12-134-4/+17
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new ActiveRecord configuration option allows you to easily pinpoint what line of application code is triggering SQL queries in the development log by appending below each SQL statement log the line of Ruby code that triggered it. It’s useful with N+1 issues, and to locate stray queries. By default this new option ignores Rails and Ruby code in order to surface only callers from your application Ruby code or your gems. It is enabled on newly generated Rails 5.2 applications and can be enabled on existing Rails applications: ```ruby Rails.application.configure do # ... config.active_record.verbose_query_logs = true end ``` The `rails app:upgrade` task will also add it to `config/development.rb`. This feature purposely avoids coupling with ActiveSupport::BacktraceCleaner since ActiveRecord can be used without ActiveRecord. This decision can be reverted in the future to allow more configurable backtraces (the exclusion of gem callers for example).
* / Enable `Layout/LeadingCommentSpace` to not allow cosmetic changes in the futureRyuta Kamizono2017-12-141-2/+2
|/ | | | Follow up of #31432.
* Expose Active Storage routesMehmet Emin INAC2017-12-131-13/+32
|
* Enable `Layout/SpaceBeforeComma` rubocop rule, and fixed moreRyuta Kamizono2017-12-121-6/+6
| | | | Follow up of #31390.
* Fix secrets command deprecation messageStefan Wrobel2017-12-111-1/+1
|
* `create_fixtures` doesn't work since at least ↵Edouard CHIN2017-12-111-4/+0
| | | | | | | a94220b66c9e4890007f66b092b25f8a64a19d31: - The namespacing should be `ActiveRecord::FixtureSet` - I might be missing something but I'm not sure why `create_fixtures` is useful for nowaday (unless for testing rails internal /shrug) and since it's been that long it wasn't working I think it should be fine to just fire it
* Set the Rails environment from an environment variableAaron Patterson2017-12-082-5/+2
| | | | | | | | | Option parsing happens too late to have any impact on the Rails environment. Rails accesses the environment name and memoizes it too early in the boot process for a commandline option to have any impact on the database connection, so we'll change this test to set the environment from an environment variable (and ensure it still works when running tests with `ruby`)
* Revert "remove unnecessary `RAILS_ENV` setting"Aaron Patterson2017-12-082-0/+4
| | | | This reverts commit 9a80f52541ed2c93ebef02909ecab3aaf9127150.
* Add failing test for wrong database connectionAaron Patterson2017-12-081-0/+17
| | | | | | When tests are run with just `ruby`, the RAILS_ENV is set to `development` too early, and we connect to the development database rather than the test database.
* Fix Rails environment when running tests with RubyAaron Patterson2017-12-063-3/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | I frequently run tests with `ruby`, not with a runner like `rake` or `rails`. When running the test with just `ruby` the `RAILS_ENV` environment variable did not get set to "test", and this would cause the tests to fail (and even mutate the development database!) This commit adds integration tests for running tests with just `ruby` and ensures the environment gets defaulted to "test". I also added a test to ensure that passing an environment to `-e` actually works (and fixed that case too). An interesting / annoying thing is that Minitest picks up it's plugins by asking RubyGems for a list of files: https://github.com/seattlerb/minitest/blob/ca6a71ca901016db09a5ad466b4adea4b52a504a/lib/minitest.rb#L92-L100 This means that RubyGems needs to somehow know about the file before it can return it to Minitest. Since we are not packaging Rails as a Gem before running the integration tests on it (duh, why would you do that?), RubyGems doesn't know about the file, so it can't tell Minitest, so Minitest doesn't automatically require it. This means I had to manually require and insert the plugin in our integration test. I've left comments about that in the test as well. Ugh.
* Add more tests for the `--webpack` optionTsukuru Tanimichi2017-12-051-0/+19
|
* Modify `test_webpack_option`Tsukuru Tanimichi2017-12-051-3/+5
|
* Merge pull request #31279 from ttanimichi/tests-for-webpack-optionGuillermo Iguaran2017-12-041-0/+14
|\ | | | | Add tests for the `--webpack` option
| * Add tests for the `--webpack` optionTsukuru Tanimichi2017-12-041-0/+14
| | | | | | | | | | We probably don't have any tests for the `--webpack` option. related: #27288
* | Merge pull request #31311 from ↵Kasper Timm Hansen2017-12-032-0/+29
|\ \ | | | | | | | | | | | | y-yagi/ignore_no_database_error_when_loading_schema_cache Ignore `NoDatabaseError` when loading schema cache
| * | Make `Migrator.current_version` work without a current databaseyuuji.yaginuma2017-12-032-0/+29
| | | | | | | | | | | | | | | | | | | | | This is necessary in order to make the processing dependent on `Migrator.current_version` work even without database. Context: https://github.com/rails/rails/pull/31135#issuecomment-348404326
* | | Fix typo in test error messageclaudiob2017-12-021-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the current code, a failing test shows this error, which is missing the number of times called and has two periods at the end. ``` /railties$ be ruby -Itest test/generators/app_generator_test.rb -n test_active_storage_install Failure: AppGeneratorTest#test_active_storage_install [test/generators/app_generator_test.rb:313]: active_storage:install expected to be called once, but was called times.. Expected: 1 Actual: 2 ``` After the fix, the error message looks correct: ``` /railties$ be ruby -Itest test/generators/app_generator_test.rb -n test_active_storage_install Failure: AppGeneratorTest#test_active_storage_install [test/generators/app_generator_test.rb:313]: active_storage:install expected to be called once, but was called 2 times. Expected: 1 Actual: 2 ```
* | Merge pull request #31241 from matthewd/no-after-forkMatthew Draper2017-12-011-23/+1
|\ \ | | | | | | Drop the before_fork/on_worker_boot advice
| * | Drop the before_fork/on_worker_boot adviceMatthew Draper2017-11-271-23/+1
| | | | | | | | | | | | | | | It's no longer required for Active Record, and other common libraries (dalli, redis-rb) all seem to be fork-proof too.
* | | Move system test dependencies to test groupAnton Rieder2017-11-301-7/+10
| | |
* | | Do not overwrite by default if credentials already existsyuuji.yaginuma2017-11-302-2/+12
| | | | | | | | | | | | Fixes #31286
* | | Build the root folder before specific filesRafael Mendonça França2017-11-291-8/+8
| | | | | | | | | | | | Fixes #31282.
* | | Use `credentials` instead of `keyfile` in GCS seviceyuuji.yaginuma2017-11-291-1/+1
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | The `keyfile` was renamed to `credentials` in `google-cloud-storage` 1.8.0. https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/google-cloud-storage/CHANGELOG.md#180--2017-11-14 Although `keyfile` can still be used, but it looks like deprecate. https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/ddf7b2a856d676316525eb581c1a4cc83ca6097b/google-cloud-storage/lib/google/cloud/storage.rb#L589...L590 Therefore, I think that should use `credentials` in newly generated applications. Ref: https://github.com/GoogleCloudPlatform/google-cloud-ruby/issues/1802
* | Preparing for 5.2.0.beta2 releaseRafael Mendonça França2017-11-282-1/+6
| |
* | Use same version constraint in mysql adapter and generated applicationyuuji.yaginuma2017-11-282-2/+2
| | | | | | | | Follow up of 924a368f5c654f5304e575c767eb0fc64adc8659
* | Preparing for 5.2.0.beta1 releaseRafael Mendonça França2017-11-272-1/+3
| |
* | Make form_with_generates_ids default value to be falseRafael Mendonça França2017-11-271-4/+0
| | | | | | | | | | This will keep the behavior of an application with the defaults of a 4.2 or 5.0 application behaving the same when upgrading to 5.2.
* | Remove Content-Security-Policy initializer in API-only Applicationsyuuji.yaginuma2017-11-272-0/+8
|/ | | | | | Since `ContentSecurityPolicy::Middleware` is not loaded in API-only Applications, initializer is unnecessary. Ref: https://github.com/rails/rails/blob/9c10fec4c06da38f8975dfb851f4d899aa85f8b7/railties/lib/rails/application/default_middleware_stack.rb#L66..L68
* Added missing test for presence of CSP initializerPrathamesh Sonpatki2017-11-271-0/+1
| | | | - Followup of #31162
* Add DSL for configuring Content-Security-Policy headerAndrew White2017-11-276-34/+264
| | | | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
* Use Puma 3.11 in newly generated applicationsyuuji.yaginuma2017-11-272-2/+2
| | | | | | | In order to use early hints, need to use Puma 3.11.0 or higher. So, I think that should specify that version in newly generated applications. Ref: https://github.com/puma/puma/commit/f6f3892f4d82638fb7a2a57d993641b1486ee88a
* Merge pull request #31167 from albertoalmagro/clean-db-ambiguityRafael França2017-11-261-2/+2
|\ | | | | Clean database naming ambiguity