aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #36180 from jonathanhefner/optimize-string-fromRafael França2019-07-251-2/+3
|\ | | | | Avoid extra allocation in String#from and #to
| * Avoid extra allocation in String#from and #toJonathan Hefner2019-05-051-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Removes unnecessary Range object allocations for a significant speed-up. String#from Comparison: new: 3378594.0 i/s old: 2380129.8 i/s - 1.42x slower String#to Comparison: new: 2866175.7 i/s old: 2304406.4 i/s - 1.24x slower
* | Use correct variable in `secure_compare!`yuuji.yaginuma2019-07-262-1/+14
| | | | | | | | | | `Messages::Rotator` has `@on_rotation` not `@rotation`. https://github.com/rails/rails/blob/72bc0806a7b378cd544e8fbf7ab22d74b7913ffb/activesupport/lib/active_support/messages/rotator.rb#L11
* | Merge pull request #36005 from shioyama/plain_matcher_firstRafael França2019-07-251-9/+1
|\ \ | | | | | | Make plain matcher match first, not last
| * | Remove plain methodChris Salzberg2019-05-311-4/+0
| | |
| * | Make plain matcher match first, not lastChris Salzberg2019-05-311-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code takes the "plain" matcher with no prefix and suffix and puts it at the end of the matchers array such that it is de-prioritized among all matchers. The comment explaining this code, originally from commimt 8b8b7143efe dated in 2011, is in a context where detection from matchers happened immediately. In that situation, the plain matcher would indeed always match first and no others would ever be used. However, the current code does not immediately detect one match but rather maps matchers to matches for the method_name. Detection only happens for matches whose attribute name is valid. In this context, there is no need to bump the plain matcher to the end of the array, since it will only be selected if the attribute name it catpures matches a valid attribute name.
* | | Merge pull request #36504 from mtsmfm/mtsmfm/fix-flaky-render-testRafael França2019-07-251-4/+20
|\ \ \ | | | | | | | | Fix flaky test ActionControllerBaseRenderTest#test_direct_render_to_string
| * | | Fix flaky test ActionControllerBaseRenderTest#test_direct_render_to_stringFumiaki MATSUSHIMA2019-07-261-4/+20
|/ / /
* | | Correct assertion argument orderGeorge Claghorn2019-07-251-2/+1
| | |
* | | Merge pull request #36576 from mtsmfm/mtsmfm/fix-fixture-resolverRafael Mendonça França2019-07-252-13/+47
|\ \ \ | | | | | | | | | | | | Support :any variants for ActionView::FixtureResolver
| * | | Support :any variants for FixtureResolverFumiaki MATSUSHIMA2019-06-302-13/+47
| | | |
* | | | Merge pull request #36767 from ↵Rafael França2019-07-253-1/+23
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | vlado/active_job_test_helper_can_now_handle_relative_at_options Ability to test activejobs with relative delay
| * | | | Ability to test activejobs with relative delayVlado Cingel2019-07-263-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `assert_enqueued_with` and `assert_performed_with` were not able to properly test jobs with relative delay. `:at` option was asserted for equality and test will always fail cause small fraction of time will pass between job call and assertion. This commit fixes that by droping microseconds from `:at` argument assertions.
* | | | | Merge pull request #36765 from kylekeesling/patch-1Rafael França2019-07-252-1/+3
|\ \ \ \ \ | | | | | | | | | | | | fix filenames of attachments created via the inbound email conductor
| * | | | | Fix filenames of attachments created via the inbound email conductorKyle Keesling2019-07-252-1/+3
| |/ / / / | | | | | | | | | | | | | | | controller passed along attachment file paths instead of their filenames
* | | | | Merge pull request #36747 from ↵y-yagi2019-07-261-0/+5
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | y-yagi/add_mention_about_collection_cache_versioning Add mention about `active_record.collection_cache_versioning` to the `new_framework_defaults.rb`
| * | | | | Add mention about `active_record.collection_cache_versioning` to the ↵yuuji.yaginuma2019-07-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `new_framework_defaults.rb` All other recommended new configurations that set in `load_defaults` are already mentioned in `new_framework_defaults.rb`. So `active_record.collection_cache_versioning` should also be mentioned.
* | | | | | Merge pull request #36770 from seejohnrun/database-env-current-env-onlyEileen M. Uchitelle2019-07-252-18/+36
|\ \ \ \ \ \ | | | | | | | | | | | | | | Only merge DATABASE_URL settings into the current env
| * | | | | | 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 #36731 from jhawthorn/dir_glob_base_instead_of_chdirJohn Hawthorn2019-07-251-6/+4
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Use Dir.glob(base: ...) to avoid chdir
| * | | | | | Use Dir.glob(base: ...) to avoid chdirJohn Hawthorn2019-07-221-6/+4
| | | | | | |
* | | | | | | 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