aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make sure this test check the issue solved in #31135Rafael Mendonça França2018-09-221-6/+12
| | | | | | | | | | | | | | | Before this change this test was passing even if we revert #31135. The reason for that is that `app 'development'` will load the environment in the test process and it is happening before db_create_and_drop is called. This was not asserting that the environment was loaded in the db:create task itself. To test it we enhance the db:create task with a block that writes to a tmp file the value of the config. If the environment is loaded before that task enhancement runs the content of the file will have "true" insteand of "false".
* Fix "warning: shadowing outer local variable - job"yuuji.yaginuma2018-09-221-2/+2
|
* Merge pull request #33564 from avit/escape_javascript_castingRafael França2018-09-212-4/+9
|\ | | | | Let escape_javascript handle conversion to string
| * Let escape_javascript handle conversion to stringAndrew Vit2018-09-212-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | This brings `escape_javascript` in line with the behavior of `json_escape` and allows other value types to be output without needing explicit casting in the view template. Example: <%= javascript_tag do %> var locale = '<%== j I18n.locale %>'; // locale is a symbol <% end %>
* | No private def in the codebaseRafael Mendonça França2018-09-212-13/+16
| |
* | Merge pull request #33932 from schneems/schneems/recyclable-key-support-cacheRichard Schneeman2018-09-218-0/+69
|\ \ | | | | | | [close #33907] Error when using "recyclable" cache keys with a store that does not support it
| * | Switch to supports_cache_versioning? check to a class methodschneems2018-09-208-29/+23
| | | | | | | | | | | | | | | - Moving the `supports_cache_versioning?` check to a class method. - Shorten the method doc. - Expand on the error message.
| * | [close #33907] Error when using "recyclable" cache keys with a store that ↵schneems2018-09-208-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | does not support it If you are using the "in cache versioning" also known as "recyclable cache keys" the cache store must be aware of this scheme, otherwise you will generate cache entries that never invalidate. This PR adds a check to the initialization process to ensure that if recyclable cache keys are being used via ``` config.active_record.cache_versioning = true ``` Then the cache store needs to show that it supports this versioning scheme. Cache stores can let Rails know that they support this scheme by adding a method `supports_in_cache_versioning?` and returning true.
* | | Merge pull request #33940 from ianfleeton/chaptersRyuta Kamizono2018-09-211-13/+13
|\ \ \ | | | | | | | | Replace line items with chapters [ci skip]
| * | | Replace line items with chapters [ci skip]Ian Fleeton2018-09-211-13/+13
|/ / / | | | | | | | | | | | | Line items are a holdover from when orders were used in the examples instead of books.
* | | Merge pull request #33934 from tgxworld/add_missing_test_caseRyuta Kamizono2018-09-211-0/+7
|\ \ \ | | | | | | | | Add missing test case for `redirect_to` when request includes a port.
| * | | Add missing test case for `redirect_to` when request includes a port.Guo Xiang Tan2018-09-211-0/+7
| | | |
* | | | Merge pull request #33922 from ↵Richard Schneeman2018-09-201-0/+35
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | schneems/schneems/collection-caching-easier-to-understand [ci skip] document collection_caching.rb
| * | | | [ci skip] document collection_caching.rbschneems2018-09-191-0/+35
| | | | |
* | | | | Merge pull request #33933 from davidcelis/patch-1Yuji Yaginuma2018-09-211-0/+1
|\ \ \ \ \ | | | | | | | | | | | | Fix missing curly brace in documentation
| * | | | | Fix missing curly brace in documentationDavid Celis2018-09-201-0/+1
|/ / / / / | | | | | | | | | | This example was just missing a closing curly brace to complete the closure 😄
* | | | | Merge pull request #33906 from dark-panda/ignore-psqlrc-when-using-psqlRafael França2018-09-204-12/+12
|\ \ \ \ \ | |_|_|/ / |/| | | | Ignore psqlrc files when executing psql commands
| * | | | Ignore psqlrc files when executing psql commandsJ Smith2018-09-174-12/+12
| |/ / / | | | | | | | | | | | | | | | | | | | | psqlrc files can affect the execution of commands in ways that can hold up execution by blocking or otherwise cause unexpected side effects and should best be ignored when using psql programmatically.
* | | | Merge pull request #33930 from bogdanvlviv/correct-spelling-in-33891George Claghorn2018-09-201-1/+1
|\ \ \ \ | | | | | | | | | | Correct spelling in "Contributing to Ruby on Rails" guide [ci skip]
| * | | | Correct spelling in "Contributing to Ruby on Rails" guide [ci skip]bogdanvlviv2018-09-201-1/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | ambigity -> ambiguity Related to #33891
* | | | Merge pull request #33850 from sharang-d/fix-asset_enqueued_with-for-hashesRafael França2018-09-203-9/+38
|\ \ \ \ | | | | | | | | | | Make sure `assert_enqueued_with()` & `assert_performed_with()` work reliably with hash arguments
| * | | | Make `assert_<enqueued|performed>_with()` compare hashes ignoring order of keysSharang Dashputre2018-09-213-9/+38
| | | | | | | | | | | | | | | | | | | | The test helpers now treat `{ a: 1, b: 2 }` and `{ b: 2, a: 1 }` as equals
* | | | | Merge pull request #33891 from jgorman/remote_namesRafael França2018-09-201-40/+12
|\ \ \ \ \ | | | | | | | | | | | | Contributing to Ruby on Rails Guide: standardize git remote names [ci skip].
| * | | | | Standardize git remote names.John Gorman2018-09-151-40/+12
| | | | | |
* | | | | | Use utf8mb4 in all tests and examplesRyuta Kamizono2018-09-214-11/+11
| |/ / / / |/| | | | | | | | | | | | | | | | | | | Since #33875, Rails dropped supporting MySQL 5.1 which does not support utf8mb4. We no longer need to use legacy utf8 (utf8mb3) conservatively.
* | | | | Merge pull request #33112 from yahonda/ci_postgresql10Rafael França2018-09-201-3/+48
|\ \ \ \ \ | | | | | | | | | | | | CI against PostgreSQL 10
| * | | | | CI against PostgreSQL 10Yasuo Honda2018-09-181-3/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Replace port number 5433 to 5432 (default value) which Active Record unit tests expect - Restart PostgreSQL 10 service after changing port number - PostgreSQL 10 is a addon for the current Travis CI. Installing PostgreSQL 10 would cause longer CI to getting additional apt packages Refer https://docs.travis-ci.com/user/database-setup/#PostgreSQL - Use `sudo: required` for railties CI expecting PostgreSQL is up and running
* | | | | | Merge pull request #33925 from rafaelfranca/rm-fix-column_defaultsSean Griffin2018-09-202-1/+15
|\ \ \ \ \ \ | | | | | | | | | | | | | | Make a deep copy of the _default_attributes in column_defaults
| * | | | | | Make a deep copy of the _default_attributes in column_defaultsRafael Mendonça França2018-09-202-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When column_defaults is called it calls `value` on each instance of Attribute inside the _default_attributes set. Since value is memoized in the Attribute instance and that Attribute instance is shared across all instances of a model the next call to the default value will be memozied not running the proc defined by the user. Fixes #33031.
* | | | | | | Merge pull request #33929 from yahonda/update_utf8mb4_railsguideRyuta Kamizono2018-09-201-1/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Update MySQL server version and character set in Rails Guide [skip ci]
| * | | | | | | Update MySQL server version and character set in Rails Guide [skip ci]Yasuo Honda2018-09-201-1/+2
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | Related to #33853
* | | | | | | Merge pull request #33928 from freeletics/fix-key-envYuji Yaginuma2018-09-204-12/+8
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fixed to RAILS_MASTER_KEY as a default env key for decrypting.
| * | | | | | | Fixed to RAILS_MASTER_KEY as a default env key for decrypting.Wojciech Wnętrzak2018-09-204-12/+8
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes mistake left in https://github.com/rails/rails/pull/33521/files#diff-2a29095afcfe2c683b82a779a94c2208R59 and misunderstanding in https://github.com/rails/rails/commit/d69b04de0ff33237209afea6f6cac3ab27934908
* | | | | | | Fix deprecation hash warning - activerecord testVitor Oliveira2018-09-201-1/+1
| | | | | | |
* | | | | | | Merge pull request #33927 from bogdanvlviv/follow-up-33912Ryuta Kamizono2018-09-201-5/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Make `ActiveRecord::Result#to_a` as alias to `ActiveRecord::Result#to_ary`
| * | | | | | | Make `ActiveRecord::Result#to_a` as alias to `ActiveRecord::Result#to_ary`bogdanvlviv2018-09-201-5/+2
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ActiveRecord::Result#to_a` was introduced in #33912. I would prefer to make `to_a` as alias to the `to_ary` because: - It would be clear for users from https://edgeapi.rubyonrails.org/classes/ActiveRecord/Result.html that `to_a` and `to_ary` are the same - For us it would take less efforts in case if we needed to change the docs or implementation, since the methods are the same Follow up #33912
* | | | | | | Merge pull request #33913 from kamipo/counter_cacheRyuta Kamizono2018-09-205-29/+43
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Don't update counter cache unless the record is actually saved
| * | | | | | | Don't update counter cache unless the record is actually savedRyuta Kamizono2018-09-195-29/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a 4th attempt to make counter cache transactional completely. Past attempts: #9236, #14849, #23357. All existing counter cache issues (increment/decrement twice, lost increment) are caused due to updating counter cache on the outside of the record saving transaction by assigning belongs_to record, even though assigning that doesn't cause the record saving. We have the `@_after_replace_counter_called` guard condition to mitigate double increment/decrement issues, but we can't completely prevent that inconsistency as long as updating counter cache on the outside of the transaction, since saving the record is not always happened after that. We already have handling counter cache after create/update/destroy, https://github.com/rails/rails/blob/1b90f614b1b3d06b7f02a8b9ea6cd84f15d58643/activerecord/lib/active_record/counter_cache.rb#L162-L189 https://github.com/rails/rails/blob/1b90f614b1b3d06b7f02a8b9ea6cd84f15d58643/activerecord/lib/active_record/associations/builder/belongs_to.rb#L33-L59 so just removing assigning logic on the belongs_to association makes counter cache transactional completely. Closes #14849. Closes #23357. Closes #31493. Closes #31494. Closes #32372. Closes #33113. Closes #33117 Closes #33129. Closes #33458.
* | | | | | | | Merge pull request #33912 from gmcgibbon/ar_result_to_hash_deprecateRafael França2018-09-194-5/+27
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Deprecate ActiveRecord::Result#to_hash in favor of #to_a
| * | | | | | | | Deprecate ActiveRecord::Result#to_hash in favor of #to_aKevin Cheng2018-09-184-5/+27
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | method returns an array of hashes, not a hash e.g. Hash.try_convert(result) calls #to_hash and raises a TypeError [Gannon McGibbon + Kevin Cheng]
* | | | | | | | Fix env name for master keyyuuji.yaginuma2018-09-203-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using environment specific credentials, `RAILS_MASTER_KEY` is not used.
* | | | | | | | Merge pull request #32932 from y-yagi/fixes_32920Yuji Yaginuma2018-09-202-1/+16
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add CSP nonce to `style-src` directive
| * | | | | | | | Add CSP nonce to `style-src` directiveyuuji.yaginuma2018-05-192-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For nonce, only `script-src` and` style-src` are meaningful in the definition of Content Security Policy Level 2. https://www.w3.org/TR/CSP2/#script-src-nonce-usage https://www.w3.org/TR/CSP2/#style-src-nonce-usage Therefore, I think that customization function not needs and it is enough to enable both directives inside the framework. Fixes #32920
* | | | | | | | | Support environment specific credentials file. (#33521)Wojciech Wnętrzak2018-09-197-29/+163
| |_|_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For `production` environment look first for `config/credentials/production.yml.enc` file that can be decrypted by `ENV["RAILS_MASTER_KEY"]` or `config/credentials/production.key` master key. Edit given environment credentials file by command `rails credentials:edit --environment production`. Default behavior can be overwritten by setting `config.credentials.content_path` and `config.credentials.key_path`.
* | | | | | | | Don't return the same object when using find with an empty arrayRafael Mendonça França2018-09-192-2/+5
| |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When you pass an empty array to find we know we shoudl return an empty array but it is surprising that we are returning the original empty array instead of a new one.
* | | | | | | Merge pull request #33897 from bogdanvlviv/follow-up-33751Rafael França2018-09-184-12/+24
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Follow up #33751
| * | | | | | | `retry_job` should publish `enqueue_retry.active_job` notificationbogdanvlviv2018-09-163-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also this commit removes `:wait` from payload of `retry_stopped.active_job`. Related to https://github.com/rails/rails/pull/33751#discussion_r214140008 Follow up #33751 /cc @kaspth, @rafaelfranca
| * | | | | | | Payload of `enqueue_retry.active_job` includes `:wait`bogdanvlviv2018-09-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add mention about it to the "Active Support Instrumentation" guide Related to https://github.com/rails/rails/pull/33751#discussion_r214745153 Follow up #33751
* | | | | | | | Avoid the same `foreign_key` and `counter_cache` associations on `SillyReply`Ryuta Kamizono2018-09-193-7/+7
| |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `topic` and `reply` belongs_to associations on `SillyReply` are defined with the same `foreign_key` (`parent_id`) and `counter_cache` (`replies_count`) columns. This would cause unintentional side-effect (e.g. saving `SillyReply` object would cause double increment `replies_count`), so it is better to avoid that side-effect.
* | | | | | | Merge pull request #33909 from andrewr224/patch-1Matthew Draper2018-09-181-1/+1
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | Fix a typo in AR Query Interface [ci skip]