aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Raise deprecation for calling `[:f] = 'b'` or `[:f] << 'b'`lulalala2019-03-3113-50/+155
| | | | Revert some tests to ensure back compatibility
* Add deprecation to slice!lulalala2019-03-312-5/+5
|
* Nested attribute error's attribute name to use different key:lulalala2019-03-311-1/+1
| | | | To keep the same as SHA dcafe995bfe51e53dd04607956be9b54073e9cb6
* String override options in #import to convert to symbollulalala2019-03-311-0/+5
|
* Allow errors to remove duplicates, and ensure cyclic associations w/ ↵lulalala2019-03-314-4/+37
| | | | | autosave duplicate errors can be removed See SHA 7550f0a016ee6647aaa76c0c0ae30bebc3867288
* Add messages_forlulalala2019-03-311-1/+7
|
* Add a transitional method `objects`, for accessing the array directly.lulalala2019-03-312-6/+7
| | | | This is because we try to accommodate old hash behavior, so `first` and `last` now does not return Error object.
* Backward compatibility for errors.collect/select etc.lulalala2019-03-311-2/+2
| | | | | All enumerable methods must go through the `each` so it retain old hash behavior. Revert this after Rails 6.1 in order to speed up enumerable methods.
* Fix spec as generate_message is no longer called during validationlulalala2019-03-312-0/+17
|
* Use errors#import instead of manipulating errors/details hashlulalala2019-03-311-13/+8
|
* Add convenience method group_by_attributelulalala2019-03-312-20/+17
| | | | | | Many operations need grouping of errors by attributes, e.g. ActiveRecord::AutosaveAssociation#association_valid? Refactor other methods using group_by_attribute
* Change errorslulalala2019-03-314-159/+363
| | | | | | | | | | | | Allow `each` to behave in new way if block arity is 1 Ensure dumped marshal from Rails 5 can be loaded Make errors compatible with marshal and YAML dumps from previous versions of Rails Add deprecation warnings Ensure each behave like the past, sorted by attribute
* Add ActiveModel::Error and NestedErrorlulalala2019-03-315-16/+321
| | | | | | | Add initialize_dup to deep dup. Move proc eval and flexible message position out to Errors, because proc eval is needed for Errors#added? and Errors#delete
* Fix misalignment caused by SHA eebb9ddf9ba559a510975c486fe59a4edc9da97dlulalala2019-03-312-7/+7
|
* Add ActiveStorage.service_configurations and ActiveStorage.serviceGeorge Claghorn2019-03-314-30/+36
| | | | | | * Allow plugins to access the global service and alternative service configs before ActiveStorage::Blob loads. * Make ActiveStorage.service_configurations the default second argument to ActiveStorage::Service.configure. Plugins that just want to use an alternative service defined in config/storage.yml needn't pass in the config themselves.
* Follow up tweaks b89a3e7e638a50c648a17d09c48b49b707e1d90d [ci skip]Ryuta Kamizono2019-03-314-9/+9
| | | | | | * use backticks instead of `+` * and more (e.g. missed replacing `Array#excluding` and `Enumerable#excluding` in b89a3e7e638a50c648a17d09c48b49b707e1d90d)
* Merge pull request #35799 from leboshi/masterRyuta Kamizono2019-03-313-11/+29
|\ | | | | | | Fix callbacks on has_many :through associations
| * Fix callbacks on has_many :through associations (#33249)Ryan Kerr2019-03-303-10/+29
| | | | | | | | | | | | | | | | | | | | | | When adding a child record via a has_many :through association, build_through_record would previously build the join record, and then assign the child record and source_type option to it. Because the before_add and after_add callbacks are called as part of build, however, this caused the callbacks to receive incomplete records, specifically without the other end of the has_many :through association. Collecting all attributes before building the join record ensures the callbacks receive the fully constructed record.
* | Tweaks CHANGELOGs and docs [ci skip]Ryuta Kamizono2019-03-316-26/+28
| | | | | | | | | | | | | | * add leading `#` before `=>` since hash rocket is valid Ruby code * add backticks * remove trailing spaces * and more
* | Merge pull request #35688 from jhawthorn/render_file_rfcAaron Patterson2019-03-3013-40/+131
|\ \ | | | | | | RFC: Introduce Template::File
| * | Introduce Template::File as new render file:John Hawthorn2019-03-2713-40/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous behaviour of render file: was essentially the same as render template:, except that templates can be specified as an absolute path on the filesystem. This makes sense for historic reasons, but now render file: is almost exclusively used to render raw files (not .erb) like public/404.html. In addition to complicating the code in template/resolver.rb, I think the current behaviour is surprising to developers. This commit deprecates the existing "lookup a template from anywhere" behaviour and replaces it with "render this file exactly as it is on disk". Handlers will no longer be used (it will render the same as if the :raw handler was used), but formats (.html, .xml, etc) will still be detected (and will default to :plain). The existing render file: behaviour was the path through which Rails apps were vulnerable in the recent CVE-2019-5418. Although the vulnerability has been patched in a fully backwards-compatible way, I think it's a strong hint that we should drop the existing previously-vulnerable behaviour if it isn't a benefit to developers.
* | | Require railties for all Active Storage dependenciesGeorge Claghorn2019-03-301-0/+4
| | |
* | | Specify Active Storage's dependency on Active JobGeorge Claghorn2019-03-302-1/+3
| | |
* | | Merge pull request #35802 from abhaynikam/fix-typo-for-zeitwerk-mode-test-casesRyuta Kamizono2019-03-301-1/+1
|\ \ \ | | | | | | | | [ci skip] Fix typo directores -> directories
| * | | [ci skip] Fix typo directores -> directoriesAbhay Nikam2019-03-301-1/+1
|/ / /
* | | optimizes eager loading in :zeitwerk modeXavier Noria2019-03-302-22/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During initialization, the eager load paths of engines are unshifted into AS::Dependencies.autoload_paths. After that, the collection is frozen. (See the initializers in railties/lib/rails/engine.rb.) Hence, there is no eager load path that is not an autoload path too, and so the array difference in the deleted code is always an empty array. Just do nothing.
* | | fixes eager loading edge case in :zeitwerk modeXavier Noria2019-03-305-9/+60
| | |
* | | Merge pull request #35797 from ↵प्रथमेश Sonpatki2019-03-301-1/+0
|\ \ \ | | | | | | | | | | | | | | | | abhaynikam/35752-update-migration-doc-column-identifier [ci skip] Updated docs to reflect index: true option not available as column modifier
| * | | [ci skip] Updated docs to reflect index: true option not available as column ↵Abhay Nikam2019-03-301-1/+0
| | |/ | |/| | | | | | | modifier
* | | Merge pull request #35798 from ↵प्रथमेश Sonpatki2019-03-301-0/+1
|\ \ \ | |/ / |/| | | | | | | | abhaynikam/35784-add-extract-associated-method-to-querying-doc [ci skip] Add ActiveRecord::Relation#extract_associated method to the active_record_querying.md
| * | [ci skip] Add ActiveRecord::Relation#extract_associated method to the ↵Abhay Nikam2019-03-301-0/+1
|/ / | | | | | | active_record_querying.md
* | Add `ActiveRecord::Relation#extract_associated` for extracting associated ↵David Heinemeier Hansson2019-03-294-1/+30
| | | | | | | | | | record (#35784) * Add `ActiveRecord::Relation#extract_associated` for extracting associated records from a relation
* | Merge pull request #35794 from kamipo/type_cast_symbol_falseRyuta Kamizono2019-03-304-1/+39
|\ \ | | | | | | Type cast falsy boolean symbols on boolean attribute as false
| * | Type cast falsy boolean symbols on boolean attribute as falseRyuta Kamizono2019-03-304-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before 34cc301, type casting by boolean attribute when querying is a no-op, so finding by truthy boolean string (i.e. `where(value: "true") # => value = 'true'`) didn't work as expected (matches it to FALSE in MySQL #32624). By type casting is ensured, a value on boolean attribute is always serialized to TRUE or FALSE. In PostgreSQL, `where(value: :false) # => value = 'false'` was a valid SQL, so 34cc301 is a regresson for PostgreSQL since all symbol values are serialized as TRUE. I'd say using `:false` is mostly a developer's mistake (user's input basically comes as a string), but `:false` on boolean attribute is serialized as TRUE is not a desirable behavior for anybody. This allows falsy boolean symbols as false, i.e. `klass.create(value: :false).value? # => false` and `where(value: :false) # => value = FALSE`. Fixes #35676.
* | | Merge pull request #35792 from ↵Rafael França2019-03-291-3/+3
|\ \ \ | | | | | | | | | | | | | | | | abhaynikam/35789-follow-up-to-update-test-description-for-i18n-customize-full-message Updated the test description for i18n-customize-full-message after rename in #35789
| * | | Fixed the test description for i18n-customize-full-message after rename in ↵Abhay Nikam2019-03-301-3/+3
|/ / / | | | | | | | | | #35789
* | | Merge pull request #35781 from excid3/rich_text-field-generatorRafael França2019-03-298-14/+81
|\ \ \ | | | | | | | | Add rich_text field to model generators
| * | | Add rich_text field to model generatorsChris Oliver2019-03-288-14/+81
| | | |
* | | | Merge pull request #35789 from prathamesh-sonpatki/customize-full-messageRafael França2019-03-296-25/+25
|\ \ \ \ | | | | | | | | | | Rename `i18n_full_message` config option to `i18n_customize_full_message`
| * | | | Rename `i18n_full_message` config option to `i18n_customize_full_message`Prathamesh Sonpatki2019-03-296-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - I feel `i18n_customize_full_messages` explains the meaning of the config better. - Followup of https://github.com/rails/rails/pull/32956
* | | | | Add Active Model release notes for Rails 6 [ci skip] (#35790)प्रथमेश Sonpatki2019-03-291-0/+12
|/ / / /
* | | | Merge pull request #35788 from prathamesh-sonpatki/fix-annotate-typoKasper Timm Hansen2019-03-295-9/+9
|\ \ \ \ | |_|/ / |/| | | Fix annotated typo
| * | | Fix annotated typoPrathamesh Sonpatki2019-03-295-9/+9
|/ / /
* | | Add load hook for ActiveStorage::AttachmentGeorge Claghorn2019-03-283-2/+5
| | |
* | | Add ActiveStorage::Service#openGeorge Claghorn2019-03-286-30/+32
| | |
* | | Merge pull request #35308 from ↵Rafael França2019-03-284-1/+39
|\ \ \ | | | | | | | | | | | | | | | | erose/better-error-reporting-for-syntax-errors-in-templates Display a more helpful error message when an ERB template has a Ruby syntax error.
| * | | Add handling and tests.Eli Rose2019-02-174-1/+39
| | | |
* | | | Merge pull request #34405 from shugo/safe_buffer_backref_fixMatthew Draper2019-03-282-2/+55
|\ \ \ \ | | | | | | | | | | sub, sub!, gsub, and gsub! should set back references
| * | | | Eliminate a thread local variable as suggested by nobuShugo Maeda2019-02-141-8/+1
| | | | |
| * | | | Remove trailing spaceShugo Maeda2018-11-081-1/+1
| | | | |