aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ruby < 2.5 is no longer supportedAkira Matsuda2019-05-282-17/+9
|
* Merge pull request #36345 from jhawthorn/weakref_reaperRafael França2019-05-271-11/+21
|\ | | | | Use WeakRef in Reaper to avoid leaking connection pools
| * Use WeakRef to avoid leaking connection poolsJohn Hawthorn2019-05-271-11/+21
|/ | | | | | | | | | | | | | | | | | Prior to 3e2e8eeb9ea552bd4782538cf9348455f3d0e14a the Reaper thread would hold a reference to connection pools indefinitely, preventing the connection pool from being garbage collected, and also leaking the Thread. Since 3e2e8eeb9ea552bd4782538cf9348455f3d0e14a, there is only one Reaper Thread for all pools, however all pools are still stored in a class variable, preventing them from being garbage collected. This commit instead holds reference to the pools through a WeakRef. This way, connection pools referenced elsewhere will be reaped, any others will be able to be garbage collected. I don't love resorting to WeakRef to solve this, but I believe it's the simplest way to accomplish the the desired behaviour.
* Extract `readonly_attribute?`Ryuta Kamizono2019-05-273-6/+6
|
* Skip needless spaces from generated app layout.Kasper Timm Hansen2019-05-261-1/+1
|
* Merge pull request #36343 from edudepetris/update_commentsRyuta Kamizono2019-05-261-2/+2
|\ | | | | | | | | Change comments [ci skip]
| * Change commentsEdu Depetris2019-05-251-2/+2
|/
* Merge pull request #36340 from jhawthorn/evented_file_checker_symlinkKasper Timm Hansen2019-05-242-20/+43
|\ | | | | Fix EventedFileUpdateChecker through a symlink
| * Fix EventedFileUpdateChecker through a symlinkJohn Hawthorn2019-05-232-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | On MacOS, Dir.tmpdir gives me a folder inside "/var/folders/". However, /var is a symlink to /private/var. Previously, the nonexistent directory test would fail because it was initialized with /var/folders/... but the filenames from listen would be the realpaths. This commit normalizes the dirs by calling realpath on them if they exist. This is done on boot!, so it will work with newly directories through the symlink.
| * Use existing tmpdir in evented_file_update_testJohn Hawthorn2019-05-231-20/+18
| | | | | | | | | | The common include of this test creates a tmpdir, we should use that for consistency.
* | Address 639d7be. Readd changelog line; remove needless explicit return.Kasper Timm Hansen2019-05-242-1/+2
| |
* | Merge pull request #36323 from jhawthorn/cache_expiry_mutexRafael França2019-05-231-8/+11
|\ \ | | | | | | Wrap ActionView cache expiry in a mutex
| * | Wrap actionview cache expiry in a mutexJohn Hawthorn2019-05-211-8/+11
| | |
* | | Merge pull request #36337 from jhawthorn/remove_existing_parentRafael França2019-05-232-15/+0
|\ \ \ | |_|/ |/| | Delete evented_file_update_checker existing_parent
| * | Delete evented_file_update_checker existing_parentJohn Hawthorn2019-05-232-15/+0
|/ / | | | | | | This is no longer used as of caa3cc8868206f8109e0d633efb09d31e94ef635
* | Merge pull request #36336 from aried3r/patch-7Rafael França2019-05-231-1/+1
|\ \ | | | | | | Bump Gemfile entry jbuilder version
| * | Bump Gemfile entry jbuilder versionAnton Rieder2019-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | jbuilder 2.6.4 is the first version that relaxes the version constraint to allow Rails 6. I also did some more tests in #25183, although not with 2.6.4 explicitly. To simplify the version requirement, I went for 2.7. https://github.com/rails/jbuilder/blob/v2.6.4/jbuilder.gemspec https://github.com/rails/rails/issues/25183#issuecomment-494342406
* | | Merge pull request #33437 from CodingAnarchy/delegate_missing_allow_nilGeorge Claghorn2019-05-235-5/+44
|\ \ \ | |/ / |/| | Add :allow_nil option to delegate_missing_to
| * | Add :allow_nil option to delegate_missing_to; use in ActiveStorageMatt Tanous2019-05-235-5/+44
|/ / | | | | | | attachment
* | Merge pull request #34656 from ↵Gannon McGibbon2019-05-226-47/+100
|\ \ | | | | | | | | | | | | albertoalmagro/path_helper_without_params_does_not_loose_scope Keep part when scope option has value
| * | Remove Route#build as it wasn't usedAlberto Almagro2019-05-222-28/+21
| | | | | | | | | | | | | | | | | | After @kamipo CR feedback we realized `Route#build` wasn't used. As it is also private API being able to create Routes both with `#new` and `#build` was redundant.
| * | Use keyword arguments for ActionDispatch::Routing::Mapper::Mapping constructorAlberto Almagro2019-05-221-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes from constructor's argument list to keyword arguments in order to remove the dependency of remember parameters' positions. It also unifies all parameters extracted from the `scope` into `scope_params`, which also takes care of providing the default values for them.
| * | Use keyword arguments for ActionDispatch::Journey:Route constructorAlberto Almagro2019-05-222-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes from constructor's argument list to keyword arguments in order to remove the dependency of remember parameters' positions. The constructor already provided a default value for `internal`, this commits takes the chance to also add default values for `precedence` and `scope_options`.
| * | Keep part when scope option has valueAlberto Almagro2019-05-225-11/+65
|/ / | | | | | | | | | | | | | | | | When a route was defined within an optional scope, if that route didn't take parameters the scope was lost when using path helpers. This patch ensures scope is kept both when the route takes parameters or when it doesn't. Fixes #33219
* | Mirror direct uploadsGeorge Claghorn2019-05-2213-74/+159
| |
* | Merge pull request #36329 from XrXr/no-doc-template-assertionsRafael França2019-05-221-1/+1
|\ \ | | | | | | Remove compatibility module from docs [ci skip]
| * | Remove compatibility module from docs [ci skip]Alan Wu2019-05-221-1/+1
| | | | | | | | | | | | | | | This module exists to warn old users. I think we should remove it from the docs so we don't advertise it.
* | | Merge pull request #36294 from ↵Rafael França2019-05-224-0/+39
|\ \ \ | | | | | | | | | | | | | | | | gustavogr/add-deep-transform-keys-to-strong-params Added deep_transform_keys to StrongParameters
| * | | Implemented deep_transform_keys/! for ActionController::ParametersGustavo Gutierrez2019-05-224-0/+39
|/ / /
* | | Add `action_cable_connection_test_case` hook to the "available hooks" list ↵प्रथमेश Sonpatki2019-05-221-28/+29
| | | | | | | | | | | | | | | [ci skip] (#36326) - This hook was added in 90296674b1c
* | | Merge pull request #36320 from XrXr/no-doc-prependRafael França2019-05-211-1/+1
|\ \ \ | |_|/ |/| | [CI skip] Put :nodoc: on method that raises NoMethodError
| * | Put :nodoc: on method that raises NoMethodErrorAlan Wu2019-05-211-1/+1
| | | | | | | | | | | | | | | This method is not intended to be used so I think we should remove it from the docs.
* | | Use `capture_sql` instead of `assert_sql` with no patternRyuta Kamizono2019-05-223-15/+12
| |/ |/| | | | | And no longer need to except SCHEMA SQLs manually since 0810c07.
* | Give up filling schema cache before `assert_no_queries`Ryuta Kamizono2019-05-226-90/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a1ee4a9ff9d4a3cb255365310ead0dc7b739c6be. Even if a1ee4a9 is applied, CI is still flakiness. https://buildkite.com/rails/rails/builds/61252#2c090afa-aa84-4a2b-8b81-9f09219222c6/994-1005 https://buildkite.com/rails/rails/builds/61252#2e55bf83-1bde-44a2-a4f1-b5c3f6820fb4/929-938 Failing tests by whether schema cache is filled or not, it actually means that whether SCHEMA SQLs are executed or not is not target for the tests. So I've reverted commit a1ee4a9 which filling schema cache before `assert_no_queries`, and replace `assert_no_queries` to `assert_queries(0)`.
* | Put all `explain` methods into `DatabaseStatements` moduleRyuta Kamizono2019-05-224-18/+14
| | | | | | | | | | Almost all database statements methods except `explain` was moved into `DatabaseStatements` at #35922. This moves the last one method.
* | Merge pull request #36314 from kamipo/fallback_type_castingRyuta Kamizono2019-05-213-21/+28
|\ \ | | | | | | Fall back to type casting from the connection adapter
| * | Fall back to type casting from the connection adapterRyuta Kamizono2019-05-213-21/+28
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately, a11a8ff had no effect as long as using bind param, and was not tested. This ensures making the intent of a11a8ff, which fall back to type casting from the connection adapter. Fixes #35205. ``` % ARCONN=postgresql bundle exec ruby -w -Itest test/cases/relation/where_test.rb -n test_type_casting_nested_joins Using postgresql Run options: -n test_type_casting_nested_joins --seed 55730 # Running: E Error: ActiveRecord::WhereTest#test_type_casting_nested_joins: ActiveRecord::StatementInvalid: PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "2-foo" rails test test/cases/relation/where_test.rb:30 Finished in 0.245778s, 4.0687 runs/s, 0.0000 assertions/s. 1 runs, 0 assertions, 0 failures, 1 errors, 0 skips ```
* | Except SCHEMA SQLs in `capture_sql`Ryuta Kamizono2019-05-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Testing the result of `capture_sql` is fragile, it is due to whether SCHEMA SQLs are executed or not depends on whether schema cache is filled or not. https://buildkite.com/rails/rails/builds/61248#a5b9dc59-ff0c-40c0-b56e-0895662fbc4c/993-1004 https://buildkite.com/rails/rails/builds/61248#1157b389-f2c7-4554-b6e5-a37624a0e74a/996-1005 I've confirmed all `capture_sql` use cases in our code base, all cases won't expect SCHEMA SQLs are included. ``` % git grep -n capture_sql test/cases/associations/belongs_to_associations_test.rb:202: sql = capture_sql { comment.post } test/cases/associations/belongs_to_associations_test.rb:204: assert_not_equal sql, capture_sql { comment.post } test/cases/associations/has_many_associations_test.rb:169: sql = capture_sql { post.comments.to_a } test/cases/associations/has_many_associations_test.rb:171: assert_not_equal sql, capture_sql { post.comments.to_a } test/cases/associations/has_many_associations_test.rb:276: expected_sql = capture_sql { author.thinking_posts.delete_all } test/cases/associations/has_many_associations_test.rb:281: loaded_sql = capture_sql { author.thinking_posts.delete_all } test/cases/associations/has_many_associations_test.rb:289: expected_sql = capture_sql { author.posts.delete_all } test/cases/associations/has_many_associations_test.rb:294: loaded_sql = capture_sql { author.posts.delete_all } test/cases/associations/left_outer_join_association_test.rb:22: queries = capture_sql do test/cases/associations/left_outer_join_association_test.rb:49: queries = capture_sql { Author.left_outer_joins(:posts).to_a } test/cases/associations/left_outer_join_association_test.rb:54: queries = capture_sql { Author.joins(:posts).left_outer_joins(:posts).to_a } test/cases/associations/left_outer_join_association_test.rb:60: queries = capture_sql { Author.left_outer_joins({}).to_a } test/cases/associations/left_outer_join_association_test.rb:65: queries = capture_sql { Author.left_outer_joins([]).to_a } test/cases/associations/left_outer_join_association_test.rb:78: queries = capture_sql { Author.left_outer_joins(:essays).to_a } test/cases/associations_test.rb:384: log = capture_sql do test/cases/associations_test.rb:399: log = capture_sql do test/cases/associations_test.rb:414: log = capture_sql do test/cases/associations_test.rb:429: log = capture_sql do test/cases/associations_test.rb:444: log = capture_sql do test/cases/associations_test.rb:459: log = capture_sql do test/cases/reflection_test.rb:307: expected_sql = capture_sql { hotel.recipes.to_a } test/cases/reflection_test.rb:312: loaded_sql = capture_sql { hotel.recipes.to_a } test/cases/relation_test.rb:212: queries = capture_sql { Author.joins(:posts).merge(Post.joins(:comments)).to_a } test/cases/relation_test.rb:232: queries = capture_sql { Post.joins(:author, :categorizations).merge(Author.select(:id)).merge(categorizations_with_authors).to_a } test/cases/relation_test.rb:347: log = capture_sql do test/cases/scoping/relation_scoping_test.rb:146: log = capture_sql do test/cases/scoping/relation_scoping_test.rb:159: log = capture_sql do test/cases/test_case.rb:33: def capture_sql test/cases/test_case.rb:41: capture_sql { yield } ```
* | Correct test nameGeorge Claghorn2019-05-201-1/+1
| |
* | Merge pull request #36309 from alexandergraul/number_to_human_size_examplesRyuta Kamizono2019-05-212-2/+2
|\ \ | | | | | | Correct human file size examples [ci skip]
| * | Correct human file size examples [ci skip]Alexander Graul2019-05-202-2/+2
|/ / | | | | | | | | | | | | | | | | | | The `number_to_human_size` helpers in Action View and Active Support calculate the "human size" with a base of 1024. The examples should reflect that so they don't confuse the reader. The updated documentations use the values from: helper.number_to_human_size(1500)
* | Merge pull request #36306 from cseelus/responsive-rescues-layoutKasper Timm Hansen2019-05-201-4/+9
|\ \ | | | | | | Make rescues layout responsive
| * | Make rescues layout responsiveChris Seelus2019-05-201-4/+9
| | |
* | | Merge pull request #36302 from eugeneius/parameters_transform_keys_enumeratorRyuta Kamizono2019-05-203-9/+24
|\ \ \ | |/ / |/| | | | | Return parameters enumerator from transform_keys/!
| * | Return parameters enumerator from transform_keys/!Eugene Kenny2019-05-183-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously calling `ActionController::Parameters#transform_keys/!` without passing a block would return an enumerator for the underlying hash, which was inconsistent with the behaviour when a block was passed: ActionController::Parameters.new(foo: "bar").transform_keys { |k| k } => <ActionController::Parameters {"foo"=>"bar"} permitted: false> ActionController::Parameters.new(foo: "bar").transform_keys.each { |k| k } => {"foo"=>"bar"} An enumerator for the parameters is now returned instead, ensuring that evaluating it produces another parameters object instead of a hash: ActionController::Parameters.new(foo: "bar").transform_keys.each { |k| k } => <ActionController::Parameters {"foo"=>"bar"} permitted: false>
* | | Merge pull request #36304 from kamipo/fix_through_association_with_joinsRyuta Kamizono2019-05-192-17/+19
|\ \ \ | | | | | | | | Implicit through table joins should be appeared before user supplied joins
| * | | Implicit through table joins should be appeared before user supplied joinsRyuta Kamizono2019-05-192-17/+19
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #36293 was an issue for through association with `joins` for a long time, but since #35864 through association with `left_joins` would also be affected by the issue. Implicit through table joins should be appeared before user supplied joins, otherwise loading through association with joins will cause a statement invalid error. Fixes #36293. ``` % ARCONN=postgresql bundle exec ruby -w -Itest test/cases/associations/has_many_through_associations_test .rb -n test_through_association_with_joins Using postgresql Run options: -n test_through_association_with_joins --seed 7116 # Running: E Error: HasManyThroughAssociationsTest#test_through_association_with_joins: ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "posts" LINE 1: ... "comments_posts" ON "comments_posts"."post_id" = "posts"."i... ^ : SELECT "comments".* FROM "comments" INNER JOIN "comments" "comments_posts" ON "comments_posts"."post_id" = "posts"."id" INNER JOIN "posts" ON "comments"."post_id" = "posts"."id" WHERE "posts"."author_id" = $1 rails test test/cases/associations/has_many_through_associations_test.rb:61 Finished in 0.388657s, 2.5730 runs/s, 0.0000 assertions/s. 1 runs, 0 assertions, 0 failures, 1 errors, 0 skips ```
* | | Allow filling in the only rich-text area without a locatorGeorge Claghorn2019-05-192-7/+17
| | |
* | | Prefer Capybara::Node::Element#execute_scriptGeorge Claghorn2019-05-191-4/+1
|/ /
* | Merge pull request #36122 from ↵Gannon McGibbon2019-05-182-0/+69
|\ \ | | | | | | | | | | | | cseelus/respect-operating-system-color-scheme-for-errors Regard operating system color scheme for rescues