aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Missing require AS/core_ext/string/inflectionsAkira Matsuda2019-08-021-0/+2
| | | | |
* | | | | Let's try not to depend too much on other core extensions in a core ↵Akira Matsuda2019-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | extension test
* | | | | Missing require AS/core_ext/object/blankAkira Matsuda2019-08-021-0/+1
| | | | |
* | | | | require only what each test concernsAkira Matsuda2019-08-024-4/+7
| | | | |
* | | | | You give jruby_skip & rubinius_skip a good nameAkira Matsuda2019-08-028-78/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This hack prevails everywhere in the codebase by being copy & pasted, and it's actually not a negative thing but a necessary thing for framework implementors, so it should better have a name and be a thing. And with this commit, activesupport/test/abstract_unit.rb now doesn't silently autoload AS::TestCase, so we're ready to establish clearner environment for running AS tests (probably in later commits)
* | | | | MethodCallAssertions is a regular player of the team ActiveSupport::TestCase nowAkira Matsuda2019-08-0211-28/+3
| |/ / / |/| | | | | | | | | | | It's used everywhere, clean and mature enough
* | | | Merge pull request #36834 from kamipo/deduplicate_joinsRyuta Kamizono2019-08-022-3/+13
|\ \ \ \ | |/ / / |/| | | Deduplicate joins values
| * | | Deduplicate joins valuesRyuta Kamizono2019-08-022-3/+13
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | #36805 have one possible regression that failing deduplication if `joins_values` have complex order (e.g. `joins_values = [join_node_a, :comments, :tags, join_node_a]`). This fixes the deduplication to take it in the first phase before grouping.
* | | Fix `_write_layout_method`Ryuta Kamizono2019-08-021-1/+1
| | |
* | | No private defRafael Mendonça França2019-08-013-4/+8
| | |
* | | Merge pull request #36831 from ↵Carlos Antonio da Silva2019-08-011-1/+1
|\ \ \ | | | | | | | | | | | | | | | | akshaymohite/fix-form-helpers-documentation-comment Added missing comment notation for the example of form_with in form_helpers.md documentation. [ci skip]
| * | | Added missing comment notation for the example of form_with in ↵Akshay Mohite2019-08-011-1/+1
|/ / / | | | | | | | | | form_helpers.md documentation. [ci skip]
* | | Missing require "AS/core_ext/date_time/conversions"Akira Matsuda2019-08-011-0/+1
| | | | | | | | | | | | | | | This causes "NameError: undefined local variable or method `nsec' for #<DateTime:0x0000559163cdd878>"
* | | Another missing require "AS/core_ext/object/try"Akira Matsuda2019-08-011-0/+1
| | |
* | | It may be better to explicitly require 'object/try' where we call `try`Akira Matsuda2019-08-0114-0/+21
| | | | | | | | | | | | | | | | | | In most cases it works now without explicit require because it's accidentally required through active_support/core_ext/date_and_time/calculations.rb where we still call `try`, but that would stop working if we changed the Calculations implementation and remove the require call there.
* | | Don't require 'active_support/all' in an individual test case!!!Akira Matsuda2019-08-012-1/+1
| | | | | | | | | | | | and Git taught me that this crap was added via this commit... https://github.com/rails/rails/commit/68db6bc431fbff0b2291f1f60ccf974b4eece596
* | | These methods doesn't have to be `protected`Akira Matsuda2019-08-012-6/+3
| | |
* | | Use `try` only when we're unsure if the receiver would respond_to the methodAkira Matsuda2019-08-0124-43/+40
| | |
* | | Merge pull request #36827 from akshaymohite/fix-documentation-typo-in-exampleVipul A M2019-08-011-1/+1
|\ \ \ | | | | | | | | Fixed a typo in documentation example of activerecord database configuration. [ci skip]
| * | | Fixed a typo in documentation example of activerecord database ↵Akshay Mohite2019-08-011-1/+1
| | |/ | |/| | | | | | | | | | | | | configuration. [ci skip] - The example has sqlite3 adpater in database.yml, whereas configuration object had incorrectly specified mysql2 in documentation.
* | | Do not use the same test class in different testsyuuji.yaginuma2019-08-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the following warnings. ``` actionmailer/test/base_test.rb:272: warning: method redefined; discarding old welcome actionmailer/test/base_test.rb:260: warning: previous definition of welcome was here ```
* | | Merge pull request #36792 from peterzhu2118/azure-content-dispositionGannon McGibbon2019-07-312-2/+19
|\ \ \ | | | | | | | | Upload filename and disposition for Azure
| * | | Upload file with filename and disposition for AzurePeter Zhu2019-07-312-2/+19
| | | |
* | | | Merge pull request #36825 from cpruitt/transliterate-frozen-us-ascii-stringsEileen M. Uchitelle2019-07-312-7/+8
|\ \ \ \ | | | | | | | | | | Prevent error on transliterate with frozen strings
| * | | | Prevent error on transliterate with frozen strings.Cliff Pruitt2019-07-312-7/+8
| | |/ / | |/| | | | | | | | | | ActiveSupport::Inflector.transliterate mutates strings by changing encodings. Prior to this commit passing a frozen string would raise a `FrozenError`. This change duplicates the internal string, if frozen, before transliterating.
* | | | Merge pull request #36791 from peterzhu2118/s3-upload-dispositionGannon McGibbon2019-07-312-7/+26
|\ \ \ \ | | | | | | | | | | Upload with filename and disposition for S3
| * | | | Upload file with filename and disposition for S3Peter Zhu2019-07-312-7/+26
| | |/ / | |/| |
* | | | Merge pull request #36824 from eileencodes/fix-db-seedEileen M. Uchitelle2019-07-312-0/+21
|\ \ \ \ | |_|/ / |/| | | Fix db:seed
| * | | Fix db:seedeileencodes2019-07-312-0/+21
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `rake db:seed` command was broken for the primary environment if the application is using multiple databases. We never implemented `rake db:seed` for other databases (coming soon), but that shouldn't break the default case. The reason this was broken was because `abort_if_pending_migrations` would loop through the configs for all databases and check for migrations but would leave the last established connection. So `db:seed` was looking in the wrong database for the table to seed. This PR doesn't fix the fact that `db:seed` doesn't work for multiple databases but does fix the default case. Fixes #36817 Co-authored-by: John Crepezzi <john.crepezzi@gmail.com>
* | | Address to rubocop offencesRyuta Kamizono2019-07-315-6/+6
| | |
* | | Reduce method invocations and object allocations in head()Akira Matsuda2019-07-311-1/+1
| | |
* | | Reduce Array allocationsAkira Matsuda2019-07-312-4/+4
| | |
* | | Reduce block executionAkira Matsuda2019-07-311-3/+3
| | |
* | | Reduce method callsAkira Matsuda2019-07-311-2/+1
| | |
* | | Reduce Array assignment by not giving a name for unused `*args`Akira Matsuda2019-07-314-6/+6
| | |
* | | Reduce Array allocationsAkira Matsuda2019-07-311-1/+1
| | |
* | | Reduce some more Hash#fetch + default object allocationsAkira Matsuda2019-07-312-3/+3
| | |
* | | Merge pull request #36708 from ↵Kasper Timm Hansen2019-07-315-12/+37
|\ \ \ | | | | | | | | | | | | | | | | rails/has-one-polymorphic-touch-dont-cache-association-result-inside-create-transaction Polymorphic has_one touch: Don't cache association result inside crea…
| * | | Polymorphic has_one touch: Reset association cache result after create ↵Kasper Timm Hansen2019-07-315-12/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | transaction In case of a polymorphic association there's no automatic inverse_of to assign the inverse record. So to get the record there needs to be a query executed, however, if the query fires within the transaction that's trying to create the associated record, no record can be found. And worse, the nil result is cached on the association so after the transaction commits the record can't be found. That's what happens if touch is enabled on a polymorphic has_one association. Consider a Comment with a commentable association that needs to be touched. For `Comment.create(commentable: Post.new)`, the existing code essentially does `commentable.send(:comment)` within the create transaction for the comment and thus not finding the comment. Now we're purposefully clearing the cache in case we've tried accessing the association within the transaction and found no object. Before: ``` kaspth-imac 2.6.3 ~/code/rails/activerecord master *= ARCONN=postgresql bin/test test/cases/associations/has_one_associations_test.rb -n /commit/ Using postgresql Run options: -n /commit/ --seed 46022 D, [2019-07-19T03:30:37.864537 #96022] DEBUG -- : Chef Load (0.2ms) SELECT "chefs".* FROM "chefs" WHERE "chefs"."employable_id" = $1 AND "chefs"."employable_type" = $2 LIMIT $3 [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"], ["LIMIT", 1]] D, [2019-07-19T03:30:37.865013 #96022] DEBUG -- : Chef Create (0.2ms) INSERT INTO "chefs" ("employable_id", "employable_type") VALUES ($1, $2) RETURNING "id" [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"]] D, [2019-07-19T03:30:37.865201 #96022] DEBUG -- : TRANSACTION (0.1ms) RELEASE SAVEPOINT active_record_1 D, [2019-07-19T03:30:37.874136 #96022] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK D, [2019-07-19T03:30:37.874323 #96022] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK F Failure: HasOneAssociationsTest#test_polymorphic_has_one_with_touch_option_on_create_wont_cache_assocation_so_fetching_after_transaction_commit_works [/Users/kaspth/code/rails/activerecord/test/cases/associations/has_one_associations_test.rb:716]: --- expected +++ actual @@ -1 +1 @@ -#<Chef id: 1, employable_id: 1, employable_type: "DrinkDesignerWithPolymorphicTouchChef", department_id: nil, employable_list_type: nil, employable_list_id: nil> +nil ``` After: ``` kaspth-imac 2.6.3 ~/code/rails/activerecord master *= ARCONN=postgresql bin/test test/cases/associations/has_one_associations_test.rb -n /commit/ Using postgresql Run options: -n /commit/ --seed 46022 D, [2019-07-19T03:30:22.479387 #95973] DEBUG -- : Chef Create (0.3ms) INSERT INTO "chefs" ("employable_id", "employable_type") VALUES ($1, $2) RETURNING "id" [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"]] D, [2019-07-19T03:30:22.479574 #95973] DEBUG -- : TRANSACTION (0.1ms) RELEASE SAVEPOINT active_record_1 D, [2019-07-19T03:30:22.482051 #95973] DEBUG -- : Chef Load (0.1ms) SELECT "chefs".* FROM "chefs" WHERE "chefs"."employable_id" = $1 AND "chefs"."employable_type" = $2 LIMIT $3 [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"], ["LIMIT", 1]] D, [2019-07-19T03:30:22.482317 #95973] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK D, [2019-07-19T03:30:22.482437 #95973] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK . Finished in 0.088498s, 11.2997 runs/s, 22.5994 assertions/s. 1 runs, 2 assertions, 0 failures, 0 errors, 0 skips ``` Notice the select now fires after the commit.
* | | | Merge pull request #36819 from yamato-payforward/payforward-branchRyuta Kamizono2019-07-311-1/+1
|\ \ \ \ | | | | | | | | | | fix a typo
| * | | | fix a typoyamato-payforward2019-07-311-1/+1
|/ / / /
* | | | Merge pull request #36818 from hc0208/fix_typo_in_data_remote_jsRyuta Kamizono2019-07-311-1/+1
|\ \ \ \ | | | | | | | | | | Fix typo submited → submitted
| * | | | Fix typo submited → submitted [ci skip]hc02082019-07-311-1/+1
| | | | |
* | | | | Accessing ivar with Symbols might be just a very little bit better than with ↵Akira Matsuda2019-07-314-8/+8
| | | | | | | | | | | | | | | | | | | | fstrings
* | | | | Avoid creating new Array when looking up already registered detailAkira Matsuda2019-07-311-1/+1
| | | | |
* | | | | Reduce Hash object creation when normalizing request envAkira Matsuda2019-07-311-2/+3
| | | | |
* | | | | Cache tags_text to avoid computing tags each time when loggingAkira Matsuda2019-07-311-5/+10
| | | | |
* | | | | Reduce object allocations in Middleware::StaticAkira Matsuda2019-07-311-11/+12
| | | | |
* | | | | Reduce unnecessary String creation by not `to_s`ing until nothing matchesAkira Matsuda2019-07-311-1/+1
| | | | |
* | | | | Reduce String allocation when finding controller classAkira Matsuda2019-07-311-1/+1
| | | | |