aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | Refactor `disallow_raw_sql!` to avoid `split(/\s*,\s*/)` to order argsRyuta Kamizono2019-06-096-21/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `split(/\s*,\s*/)` to order args and then `permit.match?` one by one is much slower than `permit.match?` once.
* | | | | | | | Merge pull request #36117 from shioimm/fix_action_text_overviewYuji Yaginuma2019-06-091-0/+2
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | Fix installation on guides/source/action_text_overview.md
| * | | | | | | Fix installation on guides/source/action_text_overview.mdMisaki Shioi2019-06-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gem 'image_proccessing' is required.
* | | | | | | | Merge pull request #36438 from freeletics/nodocEileen M. Uchitelle2019-06-071-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add forgotten nodoc to dump_schema method.
| * | | | | | | | Add forgotten nodoc to dump_schema method.Wojciech Wnętrzak2019-06-071-1/+1
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | Method added in https://github.com/rails/rails/pull/36416
* | | | | | | | NULLS { FIRST | LAST } is safe SQL string since ↵Ryuta Kamizono2019-06-071-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6c82b6c99d86f37e61f935fb342cccd725d6c7d4 There is no need to be wrapped by `Arel.sql()`.
* | | | | | | | Remove redundant blank line at the bottom of the generated controller testyuuji.yaginuma2019-06-071-1/+1
| | | | | | | |
* | | | | | | | Merge pull request #36429 from bogdan/fix-preloading-duplicate-recordsRyuta Kamizono2019-06-072-1/+8
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Fix preloading on AR::Relation where records are duplicated by a join
| * | | | | | | | Fix preloading on AR::Relation where records are duplicated by a joinBogdan Gusiev2019-06-062-1/+8
| | | | | | | | |
* | | | | | | | | Merge pull request #36422 from jhawthorn/parallelize_actionviewJohn Hawthorn2019-06-063-39/+13
|\ \ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / / |/| | | | | | | | Run actionview tests in parallel
| * | | | | | | | Run actionview tests in parallelJohn Hawthorn2019-06-052-0/+12
| | | | | | | | |
| * | | | | | | | Remove actionview tests which modify fixturesJohn Hawthorn2019-06-051-39/+1
| | |_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We shouldn't modify fixtures (or any files which are checked-in). It prevents us from parallelizing, and probably has other issues. We could fix these tests by copying the file to a tmpdir and modifying it there, but I don't think they are testing anything useful anymore. Re-initializing a resolver isn't representative of "uncached" rendering (either in dev-mode or using lookup_context.disable_cache).
* | | | | | | | Merge pull request #36431 from alexgomez54/patch-1Rafael França2019-06-061-0/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Include warning in docs about polymorphism in underlying tables
| * | | | | | | | Include warning in docs about polymorphism in underlying tablesAlex Gomez2019-06-061-0/+2
|/ / / / / / / / | | | | | | | | | | | | | | | | We had a bug whereby we changed the namespace on a model using ActiveStorage, which resulted in broken download links. The reason this happened is because the `active_storage_attachments` table is a polymorphic join table that records the model's class name at the time of record creation, and uses this `record_type` in queries. Since the model namespace changed, the queries did not return the blob as expected. Discussed with @rafaelfranca, who suggested adding a warning about this in the docs.
* | | | | | | | Merge pull request #36270 from Edouard-chin/ec-on-rotation-constructorKasper Timm Hansen2019-06-063-4/+50
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Allow `on_rotation` in MessageEncryptor to be passed in constructor:
| * | | | | | | | Allow `on_rotation` in MessageEncryptor to be passed in constructor:Edouard CHIN2019-06-063-4/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use case: I'm writing a wrapper around MessageEncryptor to make things easier to rotate a secret in our app. It works something like ```ruby crypt = RotatableSecret.new(['old_secret', 'new_secret']) crypt.decrypt_and_verify(message) ``` I'd like the caller to not have to care about passing the `on_rotation` option and have the wrapper deal with it when instantiating the MessageEncryptor object. Also, almost all of the time the on_rotation should be the same when rotating a secret (logging something or StatsD event) so I think it's not worth having to repeat ourselves each time we decrypt a message.
* | | | | | | | | Merge pull request #36427 from akshaymohite/masterVipul A M2019-06-061-4/+4
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | Fixed a couple of typos, word 'deliberately' and database_resolver_context class name. [ci skip]
| * | | | | | | | Fixed a couple of typos, word 'deliberately' and database_resolver_context ↵Akshay Mohite2019-06-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | class name. [ci skip]
* | | | | | | | | Merge pull request #36426 from abhaynikam/bump-codeclimate-rubocop-versionRyuta Kamizono2019-06-068-27/+20
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Bump rubocop to 0.71
| * | | | | | | | | Bump rubocop to 0.71Abhay Nikam2019-06-068-27/+20
| | |/ / / / / / / | |/| | | | | | |
* | | | | | | | | Merge pull request #36420 from kamipo/quoted_identifier_regexRyuta Kamizono2019-06-0610-68/+166
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | Allow quoted identifier string as safe SQL string
| * | | | | | | | Allow quoted identifier string as safe SQL stringRyuta Kamizono2019-06-0610-68/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently `posts.title` is regarded as a safe SQL string, but `"posts"."title"` (it is a result of `quote_table_name("posts.title")`) is regarded as an unsafe SQL string even though a result of `quote_table_name` should obviously be regarded as a safe SQL string, since the column name matcher doesn't respect quotation, it is a little annoying. This changes the column name matcher to allow quoted identifiers as safe SQL string, now all results of the `quote_table_name` are regarded as safe SQL string.
* | | | | | | | | Merge pull request #36424 from y-yagi/unlock_selenium-webdriverYuji Yaginuma2019-06-063-14/+14
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | Unlock `selenium-webdriver` gem version
| * | | | | | | | Fix broken driver testyuuji.yaginuma2019-06-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since `selenium-webdrive` v3.1.30, use `goog:chromeOptions'` key for sending chrome options. Ref: https://github.com/SeleniumHQ/selenium/commit/0ba8188b1a26ff3587f08afa6b6182c32479e980
| * | | | | | | | Unlock `selenium-webdriver` versionyuuji.yaginuma2019-06-062-12/+12
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `selenium-webdriver` is deprecateing various features for improvement in 4.0. I want to test with the latest version to check if Rails uses deprecated features or not.
* | | | | | | | Merge pull request #36371 from eileencodes/move-schema-cache-to-poolEileen M. Uchitelle2019-06-056-7/+33
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | Move schema cache to pool
| * | | | | | | Move schema cache from connection to pooleileencodes2019-06-056-7/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR proposes moving the schema cache from the connection to the pool so the connection can ask the pool for the cache. In a future PR our goal is to be able to read the yaml file from the pool so we can get rid of the `active_record.check_schema_cache_dump` initializer. This will fix the issues surrounding dumping the schema cache and mulitple databases. Why do we want to get rid of the initializer you ask? Well I was looking at #34449 and trying to make it work for our usecase and it revealed A LOT of problems. There are a few issues that I will fix in remaining PRs with SchemaMigration, but there's a big glaring issue with this initializer. When you have an application with multiple databases we'll need to loop through all the configurations and set the schema cache on those connections. The problem is on initialization we only have one connection - the one for Ar::Base. This is fine in a single db application but not fine in multi-db. If we follow the pattern in #34449 and establish a connection to those other dbs we will end up setting the cache on the _connection object_ rather than on all connections that connect for that config. So even though we looped through the configs and assigned the cache the cache will not be set (or will be set wrong) once the app is booted because the connection objects after boot are _different_ than the connection objects we assigned the cache to. After trying many different ways to set the schema cache `@tenderlove` and I came to the conclusion that the initializer is problematic, as is setting the schema cache twice. This is part 1 to move the cache to the pool so the cache can read from the schema cache yaml file instead of setting it when initializing the app. To do this we have created a `NullPool` that initializes an empty cache. I put the `get_schema_cache` and `set_schema_cache` in an `AbstractPool` so we can share code between `ConnectionPool` and `NullPool` instead of duplicating code. Now we only need to set the schema_cache on the pool rather than the connection. In `discard!` we need to unset the connection from the schema_cache - we still want the cache just not the connection.
* | | | | | | | Fix period positionRyuta Kamizono2019-06-064-5/+5
| | | | | | | |
* | | | | | | | Merge pull request #36399 from jhawthorn/named_controller_helper_moduleJohn Hawthorn2019-06-052-9/+25
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | Name helper_method module and improve source location
| * | | | | | | Use file/line from call to helper_moduleJohn Hawthorn2019-06-031-5/+10
| | | | | | | |
| * | | | | | | Give HelperMethods module a nameJohn Hawthorn2019-06-032-4/+15
| | |_|_|/ / / | |/| | | | |
* | | | | | | Merge pull request #36416 from freeletics/fix-db-prepareEileen M. Uchitelle2019-06-054-31/+99
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fixed db:prepare task for multiple databases.
| * | | | | | | Fixed db:prepare task for multiple databases.Wojciech Wnętrzak2019-06-054-31/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When one database existed already, but not the other, during setup of missing one, existing database was wiped out.
* | | | | | | | Merge pull request #36394 from eileencodes/treat-application-record-as-primaryEileen M. Uchitelle2019-06-053-5/+22
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Treat ActiveRecord::Base and ApplicationRecord as "primary"
| * | | | | | | | Treat ActiveRecord::Base and ApplicationRecord as "primary"eileencodes2019-06-053-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When someone has a multi-db application their `ApplicationRecord` will look like: ```ruby class ApplicationRecord < ActiveRecord::Base self.abstract_class = true connects_to database: { writing: :primary, reading: :replica } end ``` This will cause us to open 2 connections to ActiveRecord::Base's database when we actually only want 1. This is because Rails sees `ApplicationRecord` and thinks it's a new connection, not the existing `ActiveRecord::Base` connection because the `connection_specification_name` is different. This PR changes `ApplicationRecord` classes to consider themselves the same as the "primary" connection. Fixes #36382
* | | | | | | | | Merge pull request #36415 from Aupajo/patch-1Xavier Noria2019-06-051-1/+1
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | Guides 6.0 release notes: fix typo
| * | | | | | | | 6.0 release notes: fix typoPete Nicholls2019-06-051-1/+1
|/ / / / / / / / | | | | | | | | | | | | | | | | An unfinished parenthetical.
* | | | | | | | Specify a config name from `config` as well as other configs [ci skip]yuuji.yaginuma2019-06-051-1/+1
| | | | | | | |
* | | | | | | | Merge pull request #36407 from y-yagi/fixes_32211Yuji Yaginuma2019-06-053-10/+21
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Extract default log file open operation to method
| * | | | | | | | Extract default log file open operation to methodyuuji.yaginuma2019-06-053-10/+21
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows customize a default log file(e.g. `reopen`) by an application. Fixes #32211.
* | | | | | | | Fix rubocop violationyuuji.yaginuma2019-06-051-2/+1
| | | | | | | |
* | | | | | | | Unify to use 4 spaces indentation in CHANGELOGs [ci skip]Ryuta Kamizono2019-06-055-63/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Especially, somehow `CHANGELOG.md` in actiontext and activestorage in master branch had used 3 spaces indentation.
* | | | | | | | Merge pull request #36376 from sharang-d/reword-content_type-changeVipul A M2019-06-051-4/+4
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Reword the ActionDispatch::Response#content_type change [ci skip]
| * | | | | | | | Reword the ActionDispatch::Response#content_type change [ci skip]Sharang Dashputre2019-06-021-4/+4
| | | | | | | | |
* | | | | | | | | Merge pull request #36404 from mrschuster/sqlite3_collation_bugRyuta Kamizono2019-06-053-2/+15
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Fix sqlite3 collation parsing when using decimal columns.
| * | | | | | | | | Fix sqlite3 collation parsing when using decimal columns.Martin Schuster2019-06-043-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an sqlite3 table contains a decimal column behind columns with a collation definition, then parsing the collation of all preceeding columns will fail -- the collation will be missed without notice.
* | | | | | | | | | Merge pull request #36398 from jhawthorn/file_update_checker_emptyJohn Hawthorn2019-06-041-1/+4
|\ \ \ \ \ \ \ \ \ \ | |_|_|_|_|/ / / / / |/| | | | | | | | | Don't call listen with empty directory list
| * | | | | | | | | Don't call listen with empty directory listJohn Hawthorn2019-06-031-1/+4
| | |_|_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Listen interprets an empty list of directories as "watch the current directory". Since EventedFileUpdateChecker doesn't share these semantics, we should not initialize listen if we end up with an empty directory list.
* | | | | | | | | Merge pull request #36405 from ↵Eileen M. Uchitelle2019-06-041-2/+2
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | abhaynikam/36389-follow-up-to-fix-grammer-and-typo Fix sentence and a typo
| * | | | | | | | | Fix typo in multi database guide depentent -> dependent [ci skip]Abhay Nikam2019-06-041-2/+2
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed the redundant addition of to [ci skip]