aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Simplify the ActionableError.{dispatch,action} boundriesGenadi Samokovarov2019-04-193-3851/+75
|
* Drop the ambiguous `ActiveSupport::ActionableError#===` checkGenadi Samokovarov2019-04-194-26/+67
|
* Manage ActionDispatch::ActionableExceptions from the default middleware stackGenadi Samokovarov2019-04-195-62/+3827
|
* Make ActiveRecord::PendingMigrationError actionableGenadi Samokovarov2019-04-192-2/+10
|
* Introduce Actionable ErrorsGenadi Samokovarov2019-04-1915-2/+284
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Actionable errors let's you dispatch actions from Rails' error pages. This can help you save time if you have a clear action for the resolution of common development errors. The de-facto example are pending migrations. Every time pending migrations are found, a middleware raises an error. With actionable errors, you can run the migrations right from the error page. Other examples include Rails plugins that need to run a rake task to setup themselves. They can now raise actionable errors to run the setup straight from the error pages. Here is how to define an actionable error: ```ruby class PendingMigrationError < MigrationError #:nodoc: include ActiveSupport::ActionableError action "Run pending migrations" do ActiveRecord::Tasks::DatabaseTasks.migrate end end ``` To make an error actionable, include the `ActiveSupport::ActionableError` module and invoke the `action` class macro to define the action. An action needs a name and a procedure to execute. The name is shown as the name of a button on the error pages. Once clicked, it will invoke the given procedure.
* Fix `yarn.lock`yuuji.yaginuma2019-04-191-5/+0
| | | | | The trix moved to a peer dependency since 11b73c40c289b03226da5d3f5a8d71b009390dbd. So that does not include in `yarn.lock`.
* Document redis: Object optionSteven Harman2019-04-181-5/+7
| | | | | | | There are four ways to pass the redis option, but only three were documented. This is now consistent with implementation. [ci skip]
* Merge pull request #36012 from r7kamura/feature/safe-buffer-multiplicationRyuta Kamizono2019-04-193-0/+26
|\ | | | | Preserve html_safe? status on ActiveSupport::SafeBuffer#*
| * Preserve html_safe? status on ActiveSupport::SafeBuffer#*r7kamura2019-04-193-0/+26
| |
* | Merge pull request #36018 from aricwalker/parallel-setup-exceptionEileen M. Uchitelle2019-04-181-1/+10
|\ \ | | | | | | Catch exceptions raised in `parallelize_setup` and ensure tests fail when they occur
| * | If exception occurs during setup, add to each test executedAric Walker2019-04-181-1/+10
| | | | | | | | | | | | | | | | | | Resolves https://github.com/rails/rails/issues/35835 If an exception occurs during `parallelize_setup` make sure to catch that exception and apply it to the result of each successive test run. This results in marking all of the tests as failed to bring attention to the issue & ensure it is addressed before proceeding.
* | | Merge pull request #36023 from ↵Eileen M. Uchitelle2019-04-182-7/+9
|\ \ \ | |/ / |/| | | | | | | | eileencodes/fix-active-record-to-not-require-railties Ensure active record can load without Railties
| * | Ensure active record can load without Railtieseileencodes2019-04-182-7/+9
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When I added the rake tasks for multiple databases I accidentally made it so you couldn't use Active Record without Railties. Since getting the database configuration depends on being able to load Railties (there is no other way to read and parse the yaml file and load it) I've decided that using multiple databases outside of Rails is a no-op. I've changed the code here to return if Rails isn't defined. Then I changed the other tasks to use `ActiveRecord::Tasks::DatabaseTasks.env` instead of `Rails.env`. The multi-db tasks can keep using `Rails.env` because they'll only be generated if we're using Rails and not just Active Record.
* | Merge pull request #36014 from utilum/update_rake_to_latest_versionRyuta Kamizono2019-04-181-1/+1
|\ \ | |/ |/| Update Rake to the latest version
| * Update Rake to the latest versionutilum2019-04-181-1/+1
|/ | | | | | | | | | | | | | Fixes railties ApplicationTests failures in Ruby 2.7. Rake 12.3.2 includes a [Fix for test fails caused by 2.6 warnings](https://github.com/ruby/rake/pull/297). Upadting prevents failures of: - `RakeTests::RakeMigrationsTest#test_migration_status_when_schema_migrations_table_is_not_present` - `RakeDbsTest#test_db:structure:dump_does_not_dump_schema_information_when_no_migrations_are_used` - `BinSetupTest#test_bin_setup_output` See [failures log](https://gist.githubusercontent.com/utilum/30e081cc38b5d90e18be8cede6385b10/raw/2b89e568977d4f1fe010726a9a561c10e59c8df8/tests.log). ruby 2.7.0dev (2019-04-18 trunk 67602) [x86_64-linux]
* Merge pull request #36010 from ↵George Claghorn2019-04-171-0/+25
|\ | | | | | | | | yoones/add-activestorage-instrumentation-hooks-to-guide Mention more ActiveStorage hooks in Active Support Instrumentation guide [ci skip]
| * Mention more ActiveStorage hooks in Active Support Instrumentation guide [ci ↵Younes SERRAJ2019-04-171-0/+25
| | | | | | | | | | | | | | | | | | skip] Hooks added: - `service_download_chunk.active_storage` - `service_update_metadata.active_storage` - `preview.active_storage`
* | Merge pull request #35052 from schuetzm/silence-i18n-fallback-deprecationKasper Timm Hansen2019-04-171-1/+2
|\ \ | | | | | | Describe how to silence the deprecation warning about empty I18n fall…
| * | Describe how to silence the deprecation warning about empty I18n fallbacksMarc Schütz2019-01-251-1/+2
| | |
* | | Merge pull request #36009 from abhaynikam/fix-model-generator-test-typoKasper Timm Hansen2019-04-171-1/+1
|\ \ \ | |_|/ |/| | Fix typo in test description from generages -> generates
| * | Fix typo in test description from generages -> generatesAbhay Nikam2019-04-171-1/+1
|/ /
* | Merge pull request #35886 from okuramasafumi/add-docs-to-concernRyuta Kamizono2019-04-171-1/+24
|\ \ | | | | | | Add documentations to concern methods [ci skip]
| * | Add documentations to AS::Concern#included and #class_methodsokuramasafumi2019-04-171-0/+23
| | |
| * | Add `:nodoc` to ActiveSupport::Concern#append_featuresokuramasafumi2019-04-161-1/+1
| | |
* | | Merge pull request #36006 from prathamesh-sonpatki/rm-unused-requireRyuta Kamizono2019-04-171-1/+0
|\ \ \ | | | | | | | | Removed unused require for active_support/deprecation
| * | | Removed unused require for active_support/deprecationPrathamesh Sonpatki2019-04-171-1/+0
|/ / / | | | | | | | | | - Unused since https://github.com/rails/rails/commit/a91ea1d51048342d13f
* | | Merge pull request #35987 from kamipo/fix_dirty_tracking_after_rollbackRyuta Kamizono2019-04-179-25/+92
|\ \ \ | | | | | | | | | | | | Fix dirty tracking after rollback.
| * | | Fix dirty tracking after rollback.Ryuta Kamizono2019-04-169-25/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the rollback only restores primary key value, `new_record?`, `destroyed?`, and `frozen?`. Since the `save` clears current dirty attribute states, retrying save after rollback will causes no change saved if partial writes is enabled (by default). This makes `remember_transaction_record_state` remembers original values then restores dirty attribute states after rollback. Fixes #15018. Fixes #30167. Fixes #33868. Fixes #33443. Closes #33444. Closes #34504.
* | | | Prefer to indent and no blank line after private/protected [ci skip]Ryuta Kamizono2019-04-171-1/+1
| | | |
* | | | Merge pull request #35984 from vishaltelangre/asn-misc-fixesJeremy Daer2019-04-163-10/+18
|\ \ \ \ | | | | | | | | | | Various fixes in ActiveSupport::Notifications::Event
| * | | | Add test coverageVishal Telangre2019-04-161-4/+13
| | | | |
| * | | | Remove @duration instance variable since we're not maintaining instances ↵Vishal Telangre2019-04-161-2/+1
| | | | | | | | | | | | | | | | | | | | variables such as @cpu_time, @idle_time and @allocations; this reduces one allocation
| * | | | Use monotonic time to record `started` and `finished` time values for an ↵Vishal Telangre2019-04-161-2/+2
| | | | | | | | | | | | | | | | | | | | event subscribed by a `ActiveSupport::Notifications::Fanout::Subscribers::Timed` subscriber
| * | | | Fix: #cpu_time doesn't work for a ↵Vishal Telangre2019-04-161-2/+2
| | | | | | | | | | | | | | | | | | | | `ActiveSupport::Notifications::Fanout::Subscribers::Timed` subscriber
* | | | | [ci skip] More asset guide touch upsKasper Timm Hansen2019-04-171-4/+5
| | | | |
* | | | | Merge pull request #35994 from ↵Kasper Timm Hansen2019-04-171-14/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | soartec-lab/update_guide_asset_pipeline_change_default Guide updated in line with changes in rails commands [skip ci]
| * | | | | Guide updated in line with changes in rails commands [skip ci]soartec-lab2019-04-161-14/+6
| | | | | |
* | | | | | Only retry tests on CIKasper Timm Hansen2019-04-171-1/+3
| | | | | |
* | | | | | Fix bin/update references after 8927eba83cKasper Timm Hansen2019-04-173-10/+1
| | | | | |
* | | | | | Merge pull request #33139 'bin-idempotent-setup'Kasper Timm Hansen2019-04-173-50/+14
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Kasper Timm Hansen <kaspth@gmail.com>
| * | | | | | Factorize bin/update in bin/setup, and make bin/setup idempotentDavid Stosik2019-04-173-50/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `bin/setup` and `bin/update` are currently almost the same file. The only thing that keeps them apart is that one is running `bin/rails db:setup` and the other `bin/rails db:migrate`. I'm suggesting here that they should be a unique script, which needs to be idempotent. - New to a project, need to get started? `bin/setup` - Need to install new dependencies that were added recently? `bin/setup`. Before deprecating `bin/update`, I'm suggesting we just have it call `bin/setup`.
| * | | | | | Merge branch 'collection-cache-versioning'Kasper Timm Hansen2019-04-165-15/+93
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Kasper Timm Hansen <kaspth@gmail.com>
* | \ \ \ \ \ \ Merge pull request #34378 'collection-cache-versioning'Kasper Timm Hansen2019-04-165-15/+93
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| / / / / / / | |/ / / / / / Signed-off-by: Kasper Timm Hansen <kaspth@gmail.com>
| * / / / / / Add collection cache versioningLachlan Sylvester2019-04-165-15/+93
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cache versioning enables the same cache key to be reused when the object being cached changes by moving the volatile part of the cache key out of the cache key and into a version that is embedded in the cache entry. This is already occurring when the object being cached is an `ActiveRecord::Base`, but when caching an `ActiveRecord::Relation` we are currently still putting the volatile information (max updated at and count) as part of the cache key. This PR moves the volatile part of the relations `cache_key` into the `cache_version` to support recycling cache keys for `ActiveRecord::Relation`s.
* | | | | | running test with_info_handler methodMauri Mustonen2019-04-162-1/+8
| | | | | |
* | | | | | Merge pull request #35997 from ↵Rafael França2019-04-162-2/+12
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | tjoyal/Rails/MailersController/do-not-leak-I18n-global-setting-changes [Rails::MailersController] Do not leak I18n global setting changes
| * | | | | | [Rails::MailersController] Do not leak I18n global setting changesThierry Joyal2019-04-162-2/+12
| | | | | | |
* | | | | | | Merge pull request #35996 from utilum/warning_useless_useKasper Timm Hansen2019-04-161-2/+2
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Squash warning: possibly useless use of a constant in void context
| * | | | | | Squash warning: possibly useless use of a constantutilum2019-04-161-2/+2
|/ / / / / / | | | | | | | | | | | | | | | | | | in void context
* | | | | | Merge pull request #35995 from soartec-lab/update_guide_command_line_sample_codeEileen M. Uchitelle2019-04-161-6/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | Update the generate command sample codes [skip ci]