aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Prep releaseeileencodes2019-03-1132-69/+134
| | | | | | | * Update RAILS_VERSION * Bundle * rake update_versions * rake changelog:header
* Fix possible dev mode RCEAaron Patterson2019-03-104-6/+43
| | | | | | | | | | | | If the secret_key_base is nil in dev or test generate a key from random bytes and store it in a tmp file. This prevents the app developers from having to share / checkin the secret key for dev / test but also maintains a key between app restarts in dev/test. [CVE-2019-5420] Co-Authored-By: eileencodes <eileencodes@gmail.com> Co-Authored-By: John Hawthorn <john@hawthorn.email>
* Only accept formats from registered mime typesJohn Hawthorn2019-03-103-6/+23
| | | | | [CVE-2019-5418] [CVE-2019-5419]
* Preparing for 6.0.0.beta2 releaseRafael Mendonça França2019-02-2532-68/+109
|
* Improve Template#inspect output (#35407)John Hawthorn2019-02-252-2/+16
| | | | | | | | | | | | | * Don't call inspect from identifier_method_name * Add locals Template#inspect Handler, formats, and variant are usually obvious from looking at the identifier. However it's not uncommon to have different locals for the same template so we should make that obvious in inspect. * Add tests for short_identifier and inspect [John Hawthorn + Rafael Mendonça França]
* Merge pull request #35406 from rails/template-has-one-formatAaron Patterson2019-02-2516-31/+43
|\ | | | | Templates have one format
| * Templates have one formatAaron Patterson2019-02-2516-31/+43
| | | | | | | | | | | | | | Templates only have one format. Before this commit, templates would be constructed with a single element array that contained the format. This commit eliminates the single element array and just implements a `format` method. This saves one array allocation per template.
* | Merge pull request #35400 from aglushkov/stream_manual_cache_controlAaron Patterson2019-02-252-2/+8
|\ \ | |/ |/| Allow custom cache-control header in AC::Live
| * Allow custom cache-control header in AC::LiveAndrey Glushkov2019-02-252-2/+8
| | | | | | | | https://github.com/rails/rails/issues/35312
* | Merge pull request #35404 from rails/no-nil-format-on-templatesAaron Patterson2019-02-256-16/+33
|\ \ | | | | | | No nil format on templates
| * | Update actionview/lib/action_view/template.rbRyuta Kamizono2019-02-251-1/+1
| | | | | | | | | Co-Authored-By: tenderlove <tenderlove@github.com>
| * | remove the formats writer on templatesAaron Patterson2019-02-251-2/+6
| | |
| * | Dereference the format type before template constructionAaron Patterson2019-02-252-2/+2
| | | | | | | | | | | | | | | The format should always be exactly one symbol. Now we don't need to check whether or not the format is a `Type` in the constructor.
| * | Always pass a format to the ActionView::Template constructorAaron Patterson2019-02-256-13/+26
|/ / | | | | | | | | This means we can eliminate nil checks and remove some mutations from the `decorate` method.
* | Fix class name in the documentation [ci skip]Rafael Mendonça França2019-02-251-1/+1
| |
* | Merge pull request #35402 from alimi/update-ar-read-regexAaron Patterson2019-02-254-1/+29
|\ \ | | | | | | Support read queries with leading characters while preventing writes
| * | Update READ_QUERY regexAli Ibrahim2019-02-254-1/+29
| | | | | | | | | | | | | | | | | | | | | * The READ_QUERY regex would consider reads to be writes if they started with spaces or parens. For example, a UNION query might have parens around each SELECT - (SELECT ...) UNION (SELECT ...). * It will now correctly treat these queries as reads.
* | | Depend on bootsnap 1.4.1Rafael Mendonça França2019-02-251-1/+1
| | | | | | | | | | | | This is needed to fix #35278.
* | | Refactor `type_to_sql` to handle converting `limit` to `size` in itselfRyuta Kamizono2019-02-266-76/+91
| | | | | | | | | | | | | | | Also, improving an argument error message for `limit`, extracting around `type_to_sql` code into schema statements, and more exercise tests.
* | | Merge pull request #35399 from kamipo/fix_prepared_statement_cachingRyuta Kamizono2019-02-265-15/+79
|\ \ \ | |/ / |/| | Fix prepared statements caching to be enabled even when query caching is enabled
| * | Fix prepared statements caching to be enabled even when query caching is enabledRyuta Kamizono2019-02-265-15/+79
|/ / | | | | | | | | | | | | | | | | | | | | | | Related cbcdecd, 2a56b2d. This is a regression caused by cbcdecd. If query caching is enabled, prepared statement handles are never re-used, since we missed that a query is preprocessed when query caching is enabled, but doesn't keep the `preparable` flag. We should care about that case.
* | Merge pull request #35394 from alkesh26/activemodel-typo-fixRyuta Kamizono2019-02-251-3/+3
|\ \ | | | | | | activemodel typo fixes.
| * | activemodel typo fix.alkesh262019-02-251-3/+3
| | |
* | | Merge pull request #35352 from kamipo/update_all_doesnt_care_optimistic_lockingRyuta Kamizono2019-02-254-19/+83
|\ \ \ | |/ / |/| | Ensure `update_all` series doesn't care optimistic locking
| * | Ensure `update_all` series cares about optimistic lockingRyuta Kamizono2019-02-254-19/+83
| | | | | | | | | | | | | | | | | | Incrementing the lock version invalidates any other process's optimistic lock, which is the desired outcome: the record no longer looks the same as it did when they loaded it.
* | | Merge pull request #35393 from alkesh26/activejob-typo-fixRyuta Kamizono2019-02-251-1/+1
|\ \ \ | | | | | | | | [ci skip] activejob typo fix.
| * | | [ci skip] activejob typo fix.alkesh262019-02-251-1/+1
|/ / /
* | | Remove duplicated protected params definitionsRyuta Kamizono2019-02-246-88/+30
| | | | | | | | | | | | Use "support/stubs/strong_parameters" instead.
* | | Add test case for `unscope` with `merge`Ryuta Kamizono2019-02-241-0/+13
| | |
* | | More exercise string attribute predicate tests for falsy stringsRyuta Kamizono2019-02-241-0/+4
| | |
* | | Merge pull request #35383 from soartec-lab/update_guide_activerecord_queryingRyuta Kamizono2019-02-241-0/+2
|\ \ \ | | | | | | | | How to use `select` is updated [ci skip]
| * | | How to use `select` is updated [ci skip]soartec-lab2019-02-241-0/+2
| | | |
* | | | Disable available locale checks in Action Test testyuuji.yaginuma2019-02-241-0/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Without this change, `store_translations` silently fails when available locales already initialized. Ref: https://travis-ci.org/rails/rails/jobs/497615616#L6846 https://travis-ci.org/rails/rails/jobs/497605027#L6856
* | | Merge pull request #35382 from ↵George Claghorn2019-02-232-48/+62
|\ \ \ | | | | | | | | | | | | | | | | janko/restore-io-copy-stream-compatibility-with-uploaded-file Restore ActionDispatch::Http::UploadedFile compatibility with IO.copy_stream
| * | | Restore UploadedFile compatibility with IO.copy_streamJanko Marohnić2019-02-232-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In https://github.com/rails/rails/pull/28676 the `#to_path` method was added to `ActionDispatch::Http::UploadedFile`. This broke usage with `IO.copy_stream`: source = ActionDispatch::Http::UploadedFile.new(...) IO.copy_stream(source, destination) # ~> TypeError: can't convert ActionDispatch::Http::UploadedFile to IO (ActionDispatch::Http::UploadedFile#to_io gives Tempfile) Normally `IO.copy_stream` just calls `#read` on the source object. However, when `#to_path` is defined, `IO.copy_stream` calls `#to_io` in order to retrieve the raw `File` object. In that case it trips up, because `ActionDispatch::Http::UploadedFile#to_io` returned a `Tempfile` object, which is not an `IO` subclass. We fix this by having `#to_io` return an actual `File` object.
| * | | Test ActionDispatch::Http::UploadedFile with an actual TempfileJanko Marohnić2019-02-231-48/+48
| | | |
* | | | Make this test strongerXavier Noria2019-02-231-0/+7
| | | | | | | | | | | | | | | | | | | | We test the inflections for both autoloaders, but we can also autoload the constant as a sort of integration test.
* | | | Add test case for `unscope` with unknown columnRyuta Kamizono2019-02-241-0/+11
| | | |
* | | | More exercise tests for distinct count with group byRyuta Kamizono2019-02-241-2/+16
| | | |
* | | | Let Zeitwerk autoloaders inflect with Active SupportXavier Noria2019-02-232-2/+32
|/ / / | | | | | | | | | [Harry Brundage & Xavier Noria]
* | | Merge pull request #35379 from shivamvinsol/minor_grammar_fixRyuta Kamizono2019-02-241-1/+1
|\ \ \ | | | | | | | | minor grammar fix [ci skip]
| * | | minor grammar fix [ci skip]Shivam Jain2019-02-241-1/+1
|/ / /
* | | Upgrade Zeitwerk to 1.3.1Xavier Noria2019-02-232-3/+3
| | |
* | | Merge pull request #35374 from rails/cache-inline-templatesAaron Patterson2019-02-223-1/+24
|\ \ \ | | | | | | | | Add a finalizer to inline templates
| * | | Add a finalizer to inline templatesAaron Patterson2019-02-223-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a finalizer just to inline templates. We can't cache compilation of inline templates because it's possible that people could have render calls that look like this: ```ruby loop do render inline: "#{rand}" end ``` and we would cache every one of these different inline templates. That would cause a memory leak. OTOH, we don't need finalizers on regular templates because we can cache, control, and detect changes to the template source. Fixes: #35372
* | | | Merge pull request #35375 from ↵Yuji Yaginuma2019-02-231-7/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | y-yagi/fix_test_select_with_subquery_in_from_uses_original_table_name Make `test_select_with_subquery_in_from_uses_original_table_name` work with old SQLite3
| * | | Make `test_select_with_subquery_in_from_uses_original_table_name` work with ↵yuuji.yaginuma2019-02-231-7/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | old SQLite3 It seems that the reason why the `test_select_with_subquery_in_from_uses_original_table_name` does not pass is that the return value of `sqlite3_column_name()` is wrong due to subquery flattening. This seems to have been fixed with SQLite 3.20.0(https://sqlite.org/changes.html#version_3_20_0). But CI uses the old version(maybe 3.11.0), I added `DISTINCT` to avoid optimization by subquery flattening. Ref: https://sqlite.org/optoverview.html#flattening
* | | Merge pull request #35367 from ↵Rafael França2019-02-221-2/+2
|\ \ \ | | | | | | | | | | | | | | | | abhaynikam/update-getting-started-doc-for-migration-version-in-rails-6 Update migration version to 6.0 in the getting started doc [ci skip]
| * | | [ci skip] Updated migration version to 6.0 in the getting started docsAbhay Nikam2019-02-221-2/+2
| | | |
* | | | Merge pull request #35370 from shivamvinsol/fix_skip_callbacks_documentationRyuta Kamizono2019-02-231-3/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Update callbacks skipping methods in guide. [ci skip]