aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | Fix `relation.exists?` with giving both `distinct` and `offset`Ryuta Kamizono2019-02-082-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `distinct` affects (reduces) rows of the result, so it is important part when both `distinct` and `offset` are given. Replacing SELECT clause to `1 AS one` and removing `distinct` and `order` is just optimization for the `exists?`, we should not apply the optimization for that case. Fixes #35191.
* | | | | | Merge pull request #35178 from bogdan/has-many-sizeRyuta Kamizono2019-02-082-2/+17
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Bugfix has_many association #size when ids reader is cached and assoc…
| * | | | | Bugfix has_many association #size when ids reader is cached and association ↵Bogdan Gusiev2019-02-082-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | is changed
* | | | | | Refactor extracting `current_scope_restoring_block` into the scoping classRyuta Kamizono2019-02-082-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | Relation is not best place to do this.
* | | | | | Merge pull request #35099 from yahonda/diag35098Ryuta Kamizono2019-02-082-3/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | Address test_belongs_to_does_not_use_order_by failure
| * | | | | | Address `test_belongs_to_does_not_use_order_by` failure due to checking ↵Yasuo Honda2019-02-082-3/+4
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | order by for metadata queries Also, `test_has_one_does_not_use_order_by` should not check metadata queries. Fixes #35098
* | | | | | Merge pull request #35187 from jhawthorn/db-selection-resolver_contextEileen M. Uchitelle2019-02-073-7/+8
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Finish rename of database_operations to database_resolver_context
| * | | | | Update CHANGELOG for database_resolver_contextJohn Hawthorn2019-02-071-2/+2
| | | | | |
| * | | | | Rename database_operations config to *_contextJohn Hawthorn2019-02-072-5/+6
|/ / / / /
* | | | | Merge pull request #35182 from jhawthorn/db-selection-refactorEileen M. Uchitelle2019-02-073-19/+19
|\ \ \ \ \ | |_|/ / / |/| | | | Improve naming in DatabaseSelector
| * | | | Rename database selector operations to contextJohn Hawthorn2019-02-072-18/+18
| | | | |
| * | | | Rename resolver ivar to operations in ResolverJohn Hawthorn2019-02-061-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | We're already in the resolver, we call this class "operations" in the middleware, so we should use the same naming here.
| * | | | Rename Session.build to Session.callJohn Hawthorn2019-02-062-2/+2
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | This is more consistent with Resolver, which has build called. This allows using a Proc instead of a class, which could be nice if you need to vary switching logic based on the request in a more ad-hoc way (ie. check if it is an API request).
* | | | Merge pull request #35186 from kamipo/fix_leaking_scope_on_relation_createRyuta Kamizono2019-02-075-6/+45
|\ \ \ \ | | | | | | | | | | Fix `relation.create` to avoid leaking scope to initialization block and callbacks
| * | | | Fix `relation.create` to avoid leaking scope to initialization block and ↵Ryuta Kamizono2019-02-075-6/+45
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | callbacks `relation.create` populates scope attributes to new record by `scoping`, it is necessary to assign the scope attributes to the record and to find STI subclass from the scope attributes. But the effect of `scoping` is class global, it was caused undesired behavior that pollute all class level querying methods in initialization block and callbacks (`after_initialize`, `before_validation`, `before_save`, etc), which are user provided code. To avoid the leaking scope issue, restore the original current scope before initialization block and callbacks are invoked. Fixes #9894. Fixes #17577. Closes #31526.
* | | | Refactor around scopingRyuta Kamizono2019-02-075-18/+16
| | | | | | | | | | | | | | | | | | | | | | | | Don't use `false` as special value to skip to find inherited scope, we could use `skip_inherited_scope = true`, and move `_scoping` back on Relation.
* | | | Merge pull request #35036 from rails/av-base-subclassAaron Patterson2019-02-0619-66/+137
|\ \ \ \ | | | | | | | | | | Move compiled ERB to an AV::Base subclass
| * | | | Fix deprecation warnings and call superAaron Patterson2019-02-061-2/+2
| | | | |
| * | | | Fix some typos!Aaron Patterson2019-02-062-1/+5
| | | | |
| * | | | Add a message to help allocate AV::Base instancesAaron Patterson2019-02-061-1/+5
| | | | |
| * | | | Deprecate finalizer configuration (it doesn't do anything)Aaron Patterson2019-02-064-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert "Remove finalizer and configuration" This reverts commit 9e7b4a3173788ea43b11e74a4d2f69a5f1565daa.
| * | | | Rename method so it is more descriptiveAaron Patterson2019-02-061-3/+3
| | | | |
| * | | | Pull generated methods up in to the anonymous subclassAaron Patterson2019-02-063-19/+8
| | | | | | | | | | | | | | | | | | | | Then we don't need the extra module.
| * | | | 🚨 Make the cops happy 🚨Aaron Patterson2019-02-063-3/+3
| | | | |
| * | | | Remove finalizer and configurationAaron Patterson2019-02-065-50/+0
| | | | |
| * | | | Regenerate AV::Base subclass when DetailsKey gets clearedAaron Patterson2019-02-062-3/+29
| | | | |
| * | | | Move templates to an anonymous subclass of AV::BaseAaron Patterson2019-02-0613-35/+84
| | | | | | | | | | | | | | | | | | | | | | | | | Now we can throw away the subclass and the generated methods will get GC'd too
* | | | | Allow skipping incineration of processed emailsPratik2019-02-066-1/+23
| |/ / / |/| | |
* | | | Merge pull request #35174 from ypresto/fix-concat-retvalRyuta Kamizono2019-02-064-35/+10
|\ \ \ \ | | | | | | | | | | Fix `CollectionProxy#concat` to return self by alias it to `#<<`
| * | | | Fix `CollectionProxy#concat` to return self by alias it to `#<<`Yuya Tanaka2019-02-064-35/+10
| | | | | | | | | | | | | | | | | | | | Formerly it was returning arguments (`records` array).
* | | | | Merge pull request #34971 from y-yagi/improve_railties_testYuji Yaginuma2019-02-062-4/+24
|\ \ \ \ \ | |_|_|_|/ |/| | | | Improve execution time of railties' test
| * | | | Preload all component gemsyuuji.yaginuma2019-02-061-0/+2
| | | | | | | | | | | | | | | | | | | | To avoid running require individually.
| * | | | Restrict frameworks to load in engine testyuuji.yaginuma2019-02-061-4/+22
| |/ / / | | | | | | | | | | | | | | | | For avoid to affect tests. Also, `action_text:install` task execute `yarn add`. This is an expensive and should be avoided if it is not needed.
* | | | Merge pull request #35173 from betterzega/masterYuji Yaginuma2019-02-061-1/+1
|\ \ \ \ | |/ / / |/| | | Update terminal-to-html inline images url in ScreenshotHelper documentation
| * | | Update terminal-to-html inline images url in ScreenshotHelperbetterzega2019-02-051-1/+1
|/ / /
* | | Merge pull request #35162 from silppuri/fix-incorrectly-matching-unachored-pathsAaron Patterson2019-02-053-12/+18
|\ \ \ | |/ / |/| | Fix incorrectly matching unanchored paths
| * | Restrict matching with word boundary or end of stringPetri Avikainen2019-02-052-12/+12
| | |
| * | Define word boundary for unanchored path regexpPetri Avikainen2019-02-053-12/+18
| | |
* | | Merge pull request #35171 from rails/speed-up-partialsAaron Patterson2019-02-053-19/+41
|\ \ \ | | | | | | | | Speed up partial rendering by caching "variable" calculation
| * | | Speed up partial rendering by caching "variable" calculationAaron Patterson2019-02-053-19/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit speeds up rendering partials by caching the variable name calculation on the template. The variable name is based on the "virtual path" used for looking up the template. The same virtual path information lives on the template, so we can just ask the cached template object for the variable. This benchmark takes a couple files, so I'll cat them below: ``` [aaron@TC ~/g/r/actionview (speed-up-partials)]$ cat render_benchmark.rb require "benchmark/ips" require "action_view" require "action_pack" require "action_controller" class TestController < ActionController::Base end TestController.view_paths = [File.expand_path("test/benchmarks")] controller_view = TestController.new.view_context result = Benchmark.ips do |x| x.report("render") do controller_view.render("many_partials") end end [aaron@TC ~/g/r/actionview (speed-up-partials)]$ cat test/benchmarks/test/_many_partials.html.erb Looping: <ul> <% 100.times do |i| %> <%= render partial: "list_item", locals: { i: i } %> <% end %> </ul> [aaron@TC ~/g/r/actionview (speed-up-partials)]$ cat test/benchmarks/test/_list_item.html.erb <li>Number: <%= i %></li> ``` Benchmark results (master): ``` [aaron@TC ~/g/r/actionview (master)]$ be ruby render_benchmark.rb Warming up -------------------------------------- render 41.000 i/100ms Calculating ------------------------------------- render 424.269 (± 3.5%) i/s - 2.132k in 5.031455s ``` Benchmark results (this branch): ``` [aaron@TC ~/g/r/actionview (speed-up-partials)]$ be ruby render_benchmark.rb Warming up -------------------------------------- render 50.000 i/100ms Calculating ------------------------------------- render 521.862 (± 3.8%) i/s - 2.650k in 5.085885s ```
* | | | Merge pull request #35170 from palkan/fix/encrypted-fileRafael França2019-02-051-1/+2
|\ \ \ \ | | | | | | | | | | Add missing `require "tmpdir"` in ActiveSupport::EncryptedFile
| * | | | Add missing `require "tmpdir"` in ActiveSupport::EncryptedFileVladimir Dementyev2019-02-051-1/+2
| | | | |
* | | | | Relation no longer respond to Arel methodsRyuta Kamizono2019-02-063-19/+8
| | | | | | | | | | | | | | | | | | | | This follows up d97980a16d76ad190042b4d8578109714e9c53d0.
* | | | | Merge branch 'float_dom_ids'Gannon McGibbon2019-02-053-5/+27
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Closes #34975.
| * | | | | Fix unique DOM IDs for collection inputsMark Edmondson2019-01-253-5/+26
| | | | | |
* | | | | | Merge pull request #35166 from znz/improve-regexpAaron Patterson2019-02-051-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | Improve regexp of `html_safe_translation_key?`
| * | | | | | Improve regexp of `html_safe_translation_key?`Kazuhiro NISHIYAMA2019-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use `\z` instead of `$` - Use character class instead of alternation - Optimize alternation order
* | | | | | | Merge pull request #35169 from sponomarev/chore/specify-sqlite-in-gemfileAaron Patterson2019-02-052-1/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Set sqlite3 gem version explicitly in generated Gemfile
| * | | | | | | Set sqlite3 gem version explicitly in generated GemfileSergey Ponomarev2019-02-052-1/+2
| | | | | | | |
* | | | | | | | Merge pull request #32380 from kamipo/fix_leaking_scopeRyuta Kamizono2019-02-067-8/+32
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | Chaining named scope is no longer leaking to class level querying methods