- 07 2月, 2019 6 次提交
-
-
由 Aaron Patterson 提交于
-
由 Aaron Patterson 提交于
Then we don't need the extra module.
-
由 Aaron Patterson 提交于
-
由 Aaron Patterson 提交于
-
由 Aaron Patterson 提交于
-
由 Aaron Patterson 提交于
Now we can throw away the subclass and the generated methods will get GC'd too
-
- 06 2月, 2019 10 次提交
-
-
由 Aaron Patterson 提交于
Speed up partial rendering by caching "variable" calculation
-
由 Aaron Patterson 提交于
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 ```
-
由 Rafael França 提交于
Add missing `require "tmpdir"` in ActiveSupport::EncryptedFile
-
由 Ryuta Kamizono 提交于
This follows up d97980a1.
-
由 Vladimir Dementyev 提交于
-
由 Gannon McGibbon 提交于
Closes #34975.
-
由 Aaron Patterson 提交于
Improve regexp of `html_safe_translation_key?`
-
由 Aaron Patterson 提交于
Set sqlite3 gem version explicitly in generated Gemfile
-
由 Ryuta Kamizono 提交于
Chaining named scope is no longer leaking to class level querying methods
-
由 Sergey Ponomarev 提交于
-
- 05 2月, 2019 21 次提交
-
-
由 Ryuta Kamizono 提交于
Active Record uses `scoping` to delegate to named scopes from relations for propagating the chaining source scope. It was needed to restore the source scope in named scopes, but it was caused undesired behavior that pollute all class level querying methods. Example: ```ruby class Topic < ActiveRecord::Base scope :toplevel, -> { where(parent_id: nil) } scope :children, -> { where.not(parent_id: nil) } scope :has_children, -> { where(id: Topic.children.select(:parent_id)) } end # Works as expected. Topic.toplevel.where(id: Topic.children.select(:parent_id)) # Doesn't work due to leaking `toplevel` to `Topic.children`. Topic.toplevel.has_children ``` Since #29301, the receiver in named scopes has changed from the model class to the chaining source scope, so the polluting class level querying methods is no longer required for that purpose. Fixes #14003.
-
由 Matthew Draper 提交于
If they're not set we'll still fall back to localhost, but this makes it possible to run the tests against a remote Postgres / Redis / whatever.
-
由 Kazuhiro NISHIYAMA 提交于
- Use `\z` instead of `$` - Use character class instead of alternation - Optimize alternation order
-
由 George Claghorn 提交于
Fix NameError : Make debug exceptions works in an environment where ActiveStorage is not loaded.
-
由 Ryuta Kamizono 提交于
Bugfix association loading behavior when counter cache is zero
-
由 kurosawat 提交于
NameError: uninitialized constant ActionView::CompiledTemplates::ActiveStorage
-
由 Bogdan Gusiev 提交于
-
由 David Heinemeier Hansson 提交于
-
由 David Heinemeier Hansson 提交于
-
由 yuuji.yaginuma 提交于
Follow up to #35154.
-
由 Rafael França 提交于
Specify sqlite gem version explicitly in bug report templates
-
由 Rafael Mendonça França 提交于
Support before_reset callback in CurrentAttributes
-
由 Sergey Ponomarev 提交于
-
由 Aaron Patterson 提交于
Relax sqlite3 version dependency
-
由 Aaron Patterson 提交于
Refs: rails/jbuilder#452
-
由 Rafael Mendonça França 提交于
With this benchmark: require "bundler/setup" require "active_record" require "benchmark/ips" # This connection will do for database-independent bug reports. ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:") ActiveRecord::Schema.define do create_table :posts, force: true do |t| end end class Post < ActiveRecord::Base end new_post = Post.new Benchmark.ips do |b| b.report("present?") do new_post.present? end b.report("blank?") do new_post.blank? end end Before: Warming up -------------------------------------- present? 52.147k i/100ms blank? 53.077k i/100ms Calculating ------------------------------------- present? 580.184k (±21.8%) i/s - 2.555M in 5.427085s blank? 601.537k (± 9.2%) i/s - 2.972M in 5.003503s After: Warming up -------------------------------------- present? 378.235k i/100ms blank? 375.476k i/100ms Calculating ------------------------------------- present? 17.381M (± 7.5%) i/s - 86.238M in 5.001815s blank? 17.877M (± 6.4%) i/s - 88.988M in 5.004634s This improvement is mostly because those methods were hitting `method_missing` on a lot of levels to be able to return the value. To avoid all this stack walking we are short-circuiting those methods. Closes #35059.
-
由 Sergey Ponomarev 提交于
-
由 Rafael França 提交于
Cookie doesn't expire anymore unless a flag is set:
-
由 Vipul A M 提交于
Add a link to where "inquiry" is defined in ActiveSupport docs [ci skip]
-
由 Stephen Pike 提交于
[ci skip]
-
由 Gannon McGibbon 提交于
Cleanup the whitelisting references after #33145
-
- 04 2月, 2019 3 次提交
-
-
由 Eileen M. Uchitelle 提交于
Update template missing text in Guide
-
由 utilum 提交于
Changes the Getting Started guide explanation for `ActionController::MissingExactTemplate` error, to reflect the current message. Follow up for #29286, #35148 [ci skip]
-
由 garytaylor 提交于
-