aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | | | | | Returns `nil` when `AM::Errors#delete` doesn't delete anything:Edouard CHIN2019-07-112-1/+7
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `AM::Errors#delete` currently returns an empty array when trying to delete an error that doesn't exist. This behaviour is surprising and I think it would be better to no return a truthy value but instead return nil like `Hash#delete` does.
* | | | | | | | | | | Merge pull request #36649 from Edouard-chin/ec-errors-strit-match-collectionRafael França2019-07-152-2/+24
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fix `AM::Errors.added?` trying to generate a message:
| * | | | | | | | | | | Fix `AM::Errors.added?` trying to generate a message:Edouard CHIN2019-07-102-2/+24
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - When a ActiveRecord record get saved and validated as part of a collection association, the errors attribute are changed to reflect the children names. You end up with an error attribute that will look like this: `author.errors # {:'books.title' => [:blank]}` https://github.com/rails/rails/blob/2fe20cb55c76e6e50ec3a4ec5b03bbb65adba290/activerecord/lib/active_record/autosave_association.rb#L331-L340 We then can't check if the `books.title` errors was added using `ActiveModel::Errors#added?` because it tries to generate a message to make the match and end up calling the "books.title" method on the Author. ``` author.errors.added?(:'books.title', :blank) => NoMethodError: undefined method `books.title' ``` This patch modify the behaviour of `strict_match?` to not generate a message to make the comparison but instead make a strict comparison with the `options` from the error.
* | | | | | | | | | | Merge pull request #36640 from Edouard-chin/ec-uniq-validation-fixRafael França2019-07-152-2/+3
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fix errors getting duplicated when passed validations options:
| * | | | | | | | | | | Fix errors getting duplicated when passed validations options:Edouard CHIN2019-07-102-2/+3
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - In 86620cc3aa8e2630bc8d934b1a86453276b9eee9, a change was made on how we remove error duplication on a record for autosave association This fix has one caveat where validation having a `if` / `unless` options passed as a proc would be considered different. Example: ```ruby class Book < ApplicationRecord has_one :author validates :title, presence: true, if -> { true } validates :title, presence: true, if -> { true } end Book.new.valid? # false Book.errors.full_messages # ["title can't be blank", "title can't be blank"] ``` While this example might sound strange, I think it's better to ignore `AM::Validations` options (if, unless ...) when making the comparison.
* | | | | | | | | | | Remove caveat for older Ruby's `dup` behavior [ci skip]Ryuta Kamizono2019-07-161-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In older Ruby, nil, Symbol, Fixnum, Rational, and Complex were not duplicable. In Ruby 2.5, all of them are duplicable.
* | | | | | | | | | | Merge pull request #36684 from ↵Eileen M. Uchitelle2019-07-151-4/+0
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | soartec-lab/fix/update_guide_active_support_not_mention_old_ruby Delete mention of Ruby 1.9 [skip ci]
| * | | | | | | | | | Delete mention of Ruby 1.9 [skip ci]soartec-lab2019-07-151-4/+0
| | |_|_|_|_|/ / / / | |/| | | | | | | |
* | | | | | | | | | Merge pull request #36532 from itsWill/add_to_a_to_annotated_source_codeGannon McGibbon2019-07-153-12/+29
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Empty array instead of nil for source_extract
| * | | | | | | | | | Empty array instead of nil for source_extractGuilherme Mansur2019-07-143-12/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The source_extract method will return nil when it can't find the file name in the backtrace, methods that consume this method expect an array and the nil ends up causing type errors down the road like it happened here: #36341. This patch refactors the source_extract method so that it returns an empty array instead of nil when it can't find the source code. Co-authored-by: Kasper Timm Hansen <kaspth@gmail.com>
* | | | | | | | | | | Inline anemic log guardDavid Heinemeier Hansson2019-07-151-6/+3
| |/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the only use of it
* | | | | | | | | | Merge pull request #36663 from igor04/load_database_yaml_fixEileen M. Uchitelle2019-07-152-1/+6
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Prevent exception of loading database yaml with blank config file
| * | | | | | | | | | Prevent exception of loading database yaml with blank config file [closes: ↵igor042019-07-122-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #36661]
* | | | | | | | | | | Merge pull request #36679 from jacobbednarz/update-feature-policy-example-configYuji Yaginuma2019-07-153-3/+3
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / / / |/| | | | | | | | | | Use reserved domain for example configuration
| * | | | | | | | | | Use reserved domain for example configurationJacob Bednarz2019-07-153-3/+3
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updates the generator output to use a reserved domain[1] instead of a potentially real world domain. [1]: https://tools.ietf.org/html/rfc2606#section-3
* | | | | | | | | | Merge pull request #36675 from kamipo/fix_activestorage_failureRyuta Kamizono2019-07-141-1/+0
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Fix activestorage CI failure due to ffprove version differece
| * | | | | | | | | | Fix activestorage CI failure due to ffprove version differeceRyuta Kamizono2019-07-141-1/+0
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our CI environment is upgraded from stretch to buster then ffprove version is also upgraded from 3.2.14 to 4.1.3. https://packages.debian.org/stretch/ffmpeg https://packages.debian.org/buster/ffmpeg Somehow those ffprove returns different metadata for `rotated_video.mp4`. ``` $ ffprobe -print_format json -show_streams -v error rotated_video.mp4 > ffprobe41.json $ diff -ub ffprobe32.json ffprobe41.json --- ffprobe32.json 2019-07-14 20:02:13.000000000 +0900 +++ ffprobe41.json 2019-07-14 19:59:08.000000000 +0900 @@ -27,8 +27,8 @@ "time_base": "1/17594", "start_pts": 3976, "start_time": "0.225986", - "duration_ts": 91981, - "duration": "5.227975", + "duration_ts": 88000, + "duration": "5.001705", "bit_rate": "321546", "bits_per_raw_sample": "8", "nb_frames": "44", @@ -78,8 +78,8 @@ "time_base": "1/44100", "start_pts": 0, "start_time": "0.000000", - "duration_ts": 227865, - "duration": "5.167007", + "duration_ts": 227850, + "duration": "5.166667", "bit_rate": "109732", "max_bit_rate": "109732", "nb_frames": "223", ``` In the case on the `test "analyzing a rotated video"`, most important part is `assert_equal 90, metadata[:angle]`, the accidental difference of duration for ffprove version is out of scope for the test.
* | | | | | | | | | Merge pull request #36658 from Shopify/duplicable-changesRyuta Kamizono2019-07-142-118/+8
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Remove dead code in duplicable.rb
| * | | | | | | | | | Implement UnboundMethod#duplicable?Jean Boussier2019-07-122-2/+11
| | | | | | | | | | |
| * | | | | | | | | | Remove dead code in duplicable.rbJean Boussier2019-07-111-120/+1
| | | | | | | | | | |
* | | | | | | | | | | Update guide for render file:John Hawthorn2019-07-131-19/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of this section was written from the time that render file: was the default, before CVE-2016-0752. This updates the guide to the Rails 6 `render file:` behaviour, moves it to a more appropriate part of the file. [ci skip]
* | | | | | | | | | | Remove obsolete or discouraged render examplesJohn Hawthorn2019-07-131-9/+1
| |_|_|_|/ / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of these examples no longer work. The ability to render an absolute path was removed as part of CVE-2016-0752. In Rails 6 we changed `render file:` to only take exact paths and always to render them as raw files. Rendering a template with its extensions _is_ supported, but I don't think should be recommended. This also removes `render file:` from an example where it isn't relevant. [ci skip]
* | | | | | | | | | let the upgrading guide point to the autoloading guide for STIs [skip ci]Xavier Noria2019-07-131-14/+1
| | | | | | | | | |
* | | | | | | | | | simplifies Zeitwerk compat instructions in upgrading guide [skip ci]Xavier Noria2019-07-121-35/+5
| | | | | | | | | |
* | | | | | | | | | improves zeitwerk:checkXavier Noria2019-07-121-73/+25
| |_|/ / / / / / / |/| | | | | | | |
* | | | | | | | | ports edits to the upgrading guide [skip ci]Xavier Noria2019-07-121-0/+23
| | | | | | | | |
* | | | | | | | | make sure zeitwerk:check only deals with directories [closes #36461]Xavier Noria2019-07-121-4/+5
| | | | | | | | |
* | | | | | | | | active_support/deprecation has to be already required via ↵Akira Matsuda2019-07-129-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | active_support/rails.rb
* | | | | | | | | active_support/deprecation is not in use hereAkira Matsuda2019-07-122-2/+0
| | | | | | | | |
* | | | | | | | | active_support/rails has to be required via abstract_controller.rbAkira Matsuda2019-07-121-1/+0
| | | | | | | | |
* | | | | | | | | A type class or nil has to respond_to :to_sAkira Matsuda2019-07-121-2/+1
| | | | | | | | |
* | | | | | | | | No Woman, No tryAkira Matsuda2019-07-123-3/+0
| | | | | | | | |
* | | | | | | | | try (Just a Little Bit Harder)Akira Matsuda2019-07-121-2/+1
| | | | | | | | |
* | | | | | | | | active_support/dependencies/autoload is already required via active_support.rbAkira Matsuda2019-07-124-7/+0
| | | | | | | | |
* | | | | | | | | Make sure to require active_support.rb before requiring active_support/rails.rbAkira Matsuda2019-07-121-0/+1
| | | | | | | | |
* | | | | | | | | These are already required via rails/command.rbAkira Matsuda2019-07-121-2/+0
| | | | | | | | |
* | | | | | | | | minor edit [skip ci]Xavier Noria2019-07-111-1/+1
| | | | | | | | |
* | | | | | | | | completes first version of the new autoloading guide [skip ci]Xavier Noria2019-07-111-14/+78
| | | | | | | | |
* | | | | | | | | Improve changelog entry, remove extraneous word [ci skip]Carlos Antonio da Silva2019-07-111-2/+2
|/ / / / / / / /
* | | | | | | | Do not use hard tabs in CHANGELOGs [ci skip]Ryuta Kamizono2019-07-111-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't work as indentation preperly. https://github.com/rails/rails/blob/ba7634d304008a4e6170fd701a2b7e75e1d83aea/activesupport/CHANGELOG.md
* | | | | | | | Merge pull request #36647 from ↵Ryuta Kamizono2019-07-112-1/+6
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | giraffate/fix_exists_with_distinct_and_offset_and_order_in_postgresql Fix `relation.exists?` with giving `distinct`, `offset` and `order` for joined table
| * | | | | | | | Fix `relation.exists?` with giving `distinct`, `offset` and `order` for ↵Takayuki Nakata2019-07-102-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | joined table The error happens in PostgreSQL when using `relation.exists?` with `distinct`, `offset` and `order` for joined table. However, the error does not happen if either `distinct` or `offset` is removed. This behavior is confusing. Fixes #36632
* | | | | | | | | Merge pull request #36653 from y-yagi/check_error_number_instead_of_messageYuji Yaginuma2019-07-112-2/+6
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | MySQL: Check error number instead of a message
| * | | | | | | | | MySQL: Check error number instead of a messageyuuji.yaginuma2019-07-112-2/+6
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | To be able to check regardless of locale.
* | | | | | | | | Adds support for configuring HTTP Feature Policy (#33439)Jacob Bednarz2019-07-1014-1/+608
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A HTTP feature policy is Yet Another HTTP header for instructing the browser about which features the application intends to make use of and to lock down access to others. This is a new security mechanism that ensures that should an application become compromised or a third party attempts an unexpected action, the browser will override it and maintain the intended UX. WICG specification: https://wicg.github.io/feature-policy/ The end result is a HTTP header that looks like the following: ``` Feature-Policy: geolocation 'none'; autoplay https://example.com ``` This will prevent the browser from using geolocation and only allow autoplay on `https://example.com`. Full feature list can be found over in the WICG repository[1]. As of today Chrome and Safari have public support[2] for this functionality with Firefox working on support[3] and Edge still pending acceptance of the suggestion[4]. #### Examples Using an initializer ```rb # config/initializers/feature_policy.rb Rails.application.config.feature_policy do |f| f.geolocation :none f.camera :none f.payment "https://secure.example.com" f.fullscreen :self end ``` In a controller ```rb class SampleController < ApplicationController def index feature_policy do |f| f.geolocation "https://example.com" end end end ``` Some of you might realise that the HTTP feature policy looks pretty close to that of a Content Security Policy; and you're right. So much so that I used the Content Security Policy DSL from #31162 as the starting point for this change. This change *doesn't* introduce support for defining a feature policy on an iframe and this has been intentionally done to split the HTTP header and the HTML element (`iframe`) support. If this is successful, I'll look to add that on it's own. Full documentation on HTTP feature policies can be found at https://wicg.github.io/feature-policy/. Google have also published[5] a great in-depth write up of this functionality. [1]: https://github.com/WICG/feature-policy/blob/master/features.md [2]: https://www.chromestatus.com/feature/5694225681219584 [3]: https://bugzilla.mozilla.org/show_bug.cgi?id=1390801 [4]: https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/33507907-support-feature-policy [5]: https://developers.google.com/web/updates/2018/06/feature-policy
* | | | | | | | | Merge pull request #36645 from Shopify/arel-dispatch-cacheRyuta Kamizono2019-07-111-1/+1
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Share the Arel dispatch cache between connections
| * | | | | | | | | Share the Arel dispatch cache between connectionsJean Boussier2019-07-101-1/+1
| | | | | | | | | |
* | | | | | | | | | Merge pull request #36637 from Shopify/share-quote-cacheRyuta Kamizono2019-07-114-7/+14
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Share the column and table name quote cache between connections
| * | | | | | | | | | Share the column and table name quote cache between connectionsJean Boussier2019-07-094-7/+14
| |/ / / / / / / / /
* | | | | | | | | | Merge pull request #36618 from engwan/fix-query-cache-with-shared-ar-connectionEileen M. Uchitelle2019-07-103-5/+26
|\ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ / / |/| | | | | | | | | Fix query cache when using shared connections