aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Only merge DATABASE_URL settings into the current envJohn Crepezzi2019-07-252-18/+36
| | | | | | | This commit fixes a regression where when the `DATABASE_URL` environment variable was set and the current Rails environment had a valid configuration defined in the database config, settings from the environment variable would affect _all_ environments (not just the current one).
* Merge pull request #36766 from jhawthorn/call_connection_error_numberJohn Hawthorn2019-07-252-4/+9
|\ | | | | Use connection.error_number in MySQLDatabaseTasks
| * Use connection.error_number in MySQLDatabaseTasksJohn Hawthorn2019-07-252-4/+9
| | | | | | | | | | | | | | | | | | | | | | MySQLDatabaseTasks, like AbstractMysqlAdapter, should be able to operate on any mysql adapter, not just mysql2. Errors having a .error_number attribute is a mysql2 specific API, which we (Rails) don't control, so we should instead use connection.error_number(err), which we do. This also updates tests to better test how this really works, previously it stubbed create_database to raise Tasks::DatabaseAlreadyExists, which can never happen.
* | Fixup 64a430129fKasper Timm Hansen2019-07-251-3/+5
| |
* | Use binding.local_variable_get for `:for`Kasper Timm Hansen2019-07-251-5/+3
| | | | | | | | | | | | Simplifies the surrounding code outside `convert_value`. Ref: https://github.com/rails/rails/pull/36758
* | Merge pull request #36380 from ↵Rafael Mendonça França2019-07-253-0/+39
|\ \ | | | | | | | | | | | | | | | edudepetris/ed/36272-better-negative-scope-warning Add a warning for enum elements with 'not_' prefix.
| * | Add a warning for enum elements with 'not_' prefix.Edu Depetris2019-06-303-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a enum element contains the prefix 'not_'. I warns to users to be aware of this new feature. Example code: class Foo < ActiveRecord::Base enum status: [:sent, :not_sent] end
* | | let autoloaded? support modules with overridden names [closes #36757]Xavier Noria2019-07-254-3/+30
| | |
* | | read configuration to determine excluded eager loaded directory (#36354)Andrew Kress2019-07-252-2/+11
| |/ |/| | | | | | | | | | | | | | | | | | | * read config/webpacker.yml to determine which path to exclude for zeitwerk:check * fix test errors * more changes to fix test errors * refactor webpacker_path [Andrew Kress + Rafael Mendonça França]
* | Merge pull request #36318 from itsWill/fix_event_object_payloadRafael França2019-07-253-1/+24
|\ \ | | | | | | Merge payload for EventObject subscribers
| * | Merge payload for EventObject subscribersGuilherme Mansur2019-05-223-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When instrumenting a block of code like: ```ruby ActiveSupport::Notifications.instrument("process_action.action_controller", raw_paylaod) do |payload| payload[:view_runtime] = render_view end ``` If we use an evented subscriber like so: ``` ruby ActiveSupport::Notifications.subscribe("process_action.action_controller", raw_payload) do |event| assert event.payload[:view_runtime] end ``` The code breaks because the underlying EventObject's payload does not have the `:view_runtime` key added during instrumentation. This is because the `EventedObject` subscriber calls the `finish` method with the `payload` of the event at the time it was pushed into the stack, before the block executes, but we want to call `finish` with the `payload` after the instrument block executes this way if the `payload` was modified during the block we have access to it. This is consistent with the other types of subscribers who don't have this bug.
* | | Merge pull request #36412 from robotdana/compact_blankRafael Mendonça França2019-07-2511-13/+118
|\ \ \ | | | | | | | | | | | | Add compact_blank shortcut for reject(&:blank?)
| * | | Use compact_blank throughout railsDana Sherson2019-06-056-13/+13
| | | |
| * | | Add compact_blank shortcut for reject(&:blank?)Dana Sherson2019-06-055-0/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I frequently find myself having to .compact but for blank. which means on an array reject(&:blank?) (this is fine), or, on a hash `.reject { |_k, v| v.blank? }` which is slightly more frustrating and i usually write it as .reject(&:blank?) first and am confused when it's trying to check if the keys are blank. I've added the analagous .compact_blank! where there's a reject! to build on (there's also a reject! in Set, but there's no other core_ext touching Set so i've left that alone)
* | | | Merge pull request #36758 from jturkel/feature/hash-optimizationRafael França2019-07-251-1/+3
|\ \ \ \ | | | | | | | | | | Avoid unnecessary hash allocation in HashWithIndifferentAccess#convert_value
| * | | | Avoid hash allocation for HashWithIndifferentAccess#convert_value default ↵Joel Turkel2019-07-241-1/+3
| | | | | | | | | | | | | | | | | | | | options
* | | | | Merge pull request #34201 from Edouard-chin/ec-follow-redirect-307Rafael França2019-07-253-3/+26
|\ \ \ \ \ | | | | | | | | | | | | fix `follow_redirect!` not using the same HTTP verb on 307 redirection:
| * | | | | fix `follow_redirect!` not using the same HTTP verb on 307 redirection:Edouard CHIN2019-07-253-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - According to the HTTP 1.1 spec, the 307 redirection guarantees that the method and the body will not be changed during redirection. This PR fixes that since follow_redirect! would always follow the redirection my making a GET request. Ref https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307
* | | | | | Merge pull request #36762 from Shopify/descendants-tracker-cleanupRafael França2019-07-251-2/+4
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Optimize DescendantsArray insertions
| * | | | | Optimize DescendantsArray insertionsJean Boussier2019-07-251-2/+4
| | | | | |
* | | | | | Make sure AR can load without Railseileencodes2019-07-251-0/+2
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In #36560 I accidentally re-introduced a bug where ActiveRecord can't be used without Rails. This returns an empty hash if we're outside the context of Rails since we can't create the database tasks without loading and reading the database yaml which is something only Railties can do.
* | | | | Merge pull request #36760 from andre-lgf/masterRafael França2019-07-251-0/+28
|\ \ \ \ \ | | | | | | | | | | | | [ci skip] collection_radio_buttons options example
| * | | | | Update action_view_overview.mdAndré Galatti Faria2019-07-251-1/+1
| | | | | |
| * | | | | collection_radio_buttons options exampleAndré Galatti Faria2019-07-241-0/+28
| | | | | | | | | | | | | | | | | | Added example of how to access an option attibute passed to builder in case the person wants to add a custom style to a programatically checked value e.g.
* | | | | | Merge pull request #36740 from ↵Rafael França2019-07-252-3/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | stanhu/sh-fix-index-exists-postgresql-partial-index Fix index_exists? for PostgreSQL expression indexes
| * | | | | | Fix index_exists? for PostgreSQL expression indexesStan Hu2019-07-242-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously Rails expected indexes to be an array of columns, but for PostgreSQL a expression index can just be a string of text. Handle this by forcing `Index#columns` to be an Array inside `index_exists?`. Closes #36739
* | | | | | | Merge pull request #36492 from kamipo/remove_depth_first_visitorRyuta Kamizono2019-07-257-518/+7
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Remove unused `DepthFirst` visitor
| * | | | | | | Remove unused `DepthFirst` visitorRyuta Kamizono2019-06-157-518/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We only use `ToSQL` visitors in the our codebase, do not use `DepthFirst` and `Dot` visitors. The `DepthFirst` visitor (which was introduced at c86c37e5f) is used to traverse an Arel (partial) ast with depth first. Is there any worth to keep that undocumented feature with much code and test cases. This removes that unused `DepthFirst` code and test cases.
* | | | | | | | Stop setting a default Capybara app hostGeorge Claghorn2019-07-246-38/+43
| |_|/ / / / / |/| | | | | | | | | | | | | It's intended not to be set if Capybara starts the app server itself. Base Rails-generated URLs off of Capybara.current_session.server_url instead.
* | | | | | | Merge pull request #36756 from seejohnrun/env-urls-with-multiple-databasesEileen M. Uchitelle2019-07-242-12/+42
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | Fix multiple database support for DATABASE_URL env variable
| * | | | | | Fix multiple database support for DATABASE_URL env variableJohn Crepezzi2019-07-242-12/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes an issue where multi-database configurations were incompatible with setting a `DATABASE_URL` environment variable. As part of this work, this commit also includes a light refactor to make both multi and single database configurations lead into the same code path so they behave the same. As mentioned in #36736, this regression was introduced as part of f2ad69fe7a605b01bb7c37eeac6a9b4e7deb488e
* | | | | | | Merge pull request #36753 from cmrd-senya/36752-make-rails-logger-fiber-safeRafael França2019-07-243-1/+78
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Make ActiveSupport::Logger Fiber-safe
| * | | | | | | Make ActiveSupport::Logger Fiber-safeSenya2019-07-243-1/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use Fiber.current.__id__ in ActiveSupport::Logger#local_level= in order to make log level local to Ruby Fibers in addition to Threads.
* | | | | | | | Merge pull request #36562 from colszowka/patch-1Rafael França2019-07-241-0/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add warning about using UUIDs with activestorage
| * | | | | | | | Add warning about using UUIDs with activestorageChristoph Olszowka2019-06-271-0/+2
| | | | | | | | |
* | | | | | | | | Merge pull request #36564 from rodrei/docs-active-starage-warningRafael França2019-07-242-0/+6
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | Update docs with warning on ActiveStorage Content-Disposition override
| * | | | | | | | Update docs with warning on AS Content-Disposition override [ci skip]Rodrigo Pavano2019-06-271-0/+4
| | | | | | | | |
| * | | | | | | | Updated ActiveStorage docs by adding missing config [ci skip]Rodrigo Pavano2019-06-271-0/+2
| |/ / / / / / /
* | | | | | | | Merge pull request #36580 from Shopify/schema-cache-deuplication-from-databaseRafael França2019-07-241-5/+15
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Also deduplicate schema cache structure when they are read from the database
| * | | | | | | | Also deduplicate schema cache structure when they are read from the databaseJean Boussier2019-07-011-5/+15
| | | | | | | | |
* | | | | | | | | Merge pull request #36524 from ↵Rafael França2019-07-241-0/+2
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | okuramasafumi/add-middleware-command-to-command-line-guide Add `rails initializers` and `rails middleware` to miscellaneous section in Rails Command Line guide [ci skip]
| * | | | | | | | | Add some commands to misc section in CLI guideOKURA Masafumi2019-06-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add these two command: * `rails initializers` * `rails middleware`
* | | | | | | | | | Merge pull request #36715 from peterzhu2118/azure-content-typeEileen M. Uchitelle2019-07-242-2/+16
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Add content_type to upload method for Azure
| * | | | | | | | | | Add content_type to upload in AzurePeter Zhu2019-07-242-2/+16
| | | | | | | | | | |
* | | | | | | | | | | Merge pull request #36671 from ↵Eileen M. Uchitelle2019-07-245-1/+37
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wjessop/do_not_validate_non_dirty_association_targets Don't validate non dirty association targets
| * | | | | | | | | | | Don't validate non dirty association targetsWill Jessop2019-07-155-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #36581. This fixes an issue where validations would return differently when a previously saved invalid association was loaded between calls: assert_equal true, squeak.valid? assert_equal true, squeak.mouse.present? assert_equal true, squeak.valid? Here the second assert would return Expected: true Actual: false Limiting validations to associations that would be normally saved (using autosave: true) due to changes means that loading invalid associated relations will not change the return value of the parent relations's `valid?` method.
* | | | | | | | | | | | Merge pull request #34218 from eliotsykes/filter-common-sensitive-paramsRafael França2019-07-241-1/+3
|\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | Add common sensitive names to generated filter parameters
| * | | | | | | | | | | | Add common sensitive names to generated filter parametersEliot Sykes2018-11-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These added names are distilled from the filter_parameters config of a number of open source Rails applications.
| * | | | | | | | | | | | Add secret to generated filter parametersEliot Sykes2018-11-201-1/+1
| | | | | | | | | | | | |
* | | | | | | | | | | | | Merge pull request #36434 from Edouard-chin/ec-securecompare-rotationRafael França2019-07-242-0/+96
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new ActiveSupport::SecureCompareRotator class: