- 27 10月, 2017 5 次提交
-
-
由 Dillon Welch 提交于
Do a check if the 'rel' argument is passed in, and simply set it to 'nofollow' if 'rel' was not passed in. This prevents three string allocations for each call to `link_to` in that scenario. In the scenario where the 'rel' argument is passed in, performance is around the same as before as the `key?` check is very fast. ```ruby begin require "bundler/inline" rescue LoadError => e $stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler" raise e end gemfile(true) do source "https://rubygems.org" gem "benchmark-ips" gem "rails" end def allocate_count GC.disable before = ObjectSpace.count_objects yield after = ObjectSpace.count_objects after.each { |k,v| after[k] = v - before[k] } after[:T_HASH] -= 1 # probe effect - we created the before hash. GC.enable result = after.reject { |k,v| v == 0 } GC.start result end @hash = {} def master_version "#{@hash['rel'.freeze]} nofollow".lstrip end def fast_version if @hash.key?('rel'.freeze) "#{@hash["rel"]} nofollow".lstrip else "nofollow".freeze end end puts 'no rel key' puts "master_version" puts allocate_count { 1000.times { master_version } } puts "fast_version" puts allocate_count { 1000.times { fast_version } } Benchmark.ips do |x| x.report("master_version") { master_version } x.report("fast_version") { fast_version } x.compare! end puts 'rel key' @hash['rel'] = 'hi'.freeze puts "master_version" puts allocate_count { 1000.times { master_version } } puts "fast_version" puts allocate_count { 1000.times { fast_version } } Benchmark.ips do |x| x.report("master_version") { master_version } x.report("fast_version") { fast_version } x.compare! end ``` ``` no rel key master_version {:FREE=>-2791, :T_STRING=>3052} fast_version {:FREE=>-1} Warming up -------------------------------------- master_version 80.324k i/100ms fast_version 200.262k i/100ms Calculating ------------------------------------- master_version 2.049M (±11.9%) i/s - 10.121M in 5.025613s fast_version 6.645M (±21.3%) i/s - 29.439M in 5.007488s Comparison: fast_version: 6644506.3 i/s master_version: 2048833.0 i/s - 3.24x slower rel key master_version {:FREE=>-2001, :T_STRING=>2000} fast_version {:FREE=>-2001, :T_STRING=>2000} Warming up -------------------------------------- master_version 155.673k i/100ms fast_version 106.515k i/100ms Calculating ------------------------------------- master_version 2.652M (±20.4%) i/s - 12.610M in 5.036494s fast_version 2.237M (±16.8%) i/s - 10.865M in 5.035366s Comparison: master_version: 2651702.2 i/s fast_version: 2237470.6 i/s - same-ish: difference falls within error ```
-
由 Ryuta Kamizono 提交于
delegate scope_for on PolymorphicReflection
-
由 Ryuta Kamizono 提交于
fix initial count
-
由 pavel 提交于
-
由 pavel 提交于
-
- 26 10月, 2017 13 次提交
-
-
由 Rafael França 提交于
Allow passing a Proc or Symbol as an argument to length validator values
-
由 Matt Rohrer 提交于
This brings the Length validator in line with the Numericality validator, which currently supports Proc & Symbol arguments
-
由 Ryuta Kamizono 提交于
Remove mention about Evented Redis [ci skip]
-
由 yuuji.yaginuma 提交于
Evented Redis adapter was removed in 48766e32.
-
由 Ryuta Kamizono 提交于
remove incorrect comment about serializable transactions [ci skip]
-
由 Joe Van Dyk 提交于
using serializable isolation would prevent the duplicate insert as done in the example from happening
-
由 Ryuta Kamizono 提交于
Remove unused `secrets.yml` template
-
由 Ryuta Kamizono 提交于
-
由 Ryuta Kamizono 提交于
Move `extensions` to `PostgreSQL::SchemaDumper`
-
由 प्रथमेश Sonpatki 提交于
- Backport commit: https://github.com/rails/rails/commit/7122a2cdc3634e170129f8b6cabd1e8fbed13c3d
-
由 Rafael Mendonça França 提交于
Wrap accepted nested attributes params
-
由 Kelton Manzanares 提交于
-
由 Ryan Perez 提交于
to properly wrap all attributes, including those which are nested.
-
- 25 10月, 2017 15 次提交
-
-
由 Yasuo Honda 提交于
and abstract `SchemaDumper#extensions` is now an empty method. Since #30337, every database adapter has its own `SchemaDumper`. `extensions` are only supported by PostgreSQL database and postgresql database adapter.
-
由 Rafael França 提交于
Save index order :desc to schema.rb (sqlite). Fixes #30902
-
由 Rafael França 提交于
[ci skip]Add space before closing curly brace
-
由 Rafael Mendonça França 提交于
-
由 Akira Matsuda 提交于
Does not include disabled element in params
-
由 Paul Kuruvilla 提交于
-
由 willnet 提交于
-
由 George Claghorn 提交于
Change `VENDOR_PATH` to `APP_ROOT` in `bin/yarn`
-
由 yuuji.yaginuma 提交于
This variable was initially used to hold the vendor directory. https://github.com/rails/rails/commit/3dac36b Therefore, the variable name `VENDOR_PATH` was appropriate. However, `package.json` is now placed in the root of the project. https://github.com/rails/rails/commit/8e9e943 Therefore, like other bin scripts, I think the variable name `APP_ROOT` is appropriate. https://github.com/rails/rails/blob/2c845f6b03ddf2aa233b00385d24d769a4a34fa6/railties/lib/rails/generators/rails/app/templates/bin/setup.tt#L5 https://github.com/rails/rails/blob/2c845f6b03ddf2aa233b00385d24d769a4a34fa6/railties/lib/rails/generators/rails/app/templates/bin/update.tt#L5
-
由 Rafael França 提交于
`supports_extensions?` return always true since PostgreSQL 9.1
-
由 Yasuo Honda 提交于
since the minimum version of PostgreSQL currently Rails supports is 9.1, there is no need to handle if `supports_extensions?` Refer https://www.postgresql.org/docs/9.1/static/sql-createextension.html "CREATE EXTENSION"
-
由 Rafael França 提交于
Simplify API documentation of methods that return a Duration
-
由 bogdanvlviv 提交于
Related to #30972
-
由 Rafael França 提交于
Make clear that Time core extensions are split between Numeric and Integer
-
由 Paul Kuruvilla 提交于
Although the sqlite adapter supports index sort orders, they weren't being written to db/schema.rb.
-
- 24 10月, 2017 7 次提交
-
-
由 Rafael França 提交于
Space between { and | missing.
-
由 João Fernandes 提交于
The documentation wrongly suggests that Time extensions to Numeric include methods months and years, when these belong to Integer. Update both classes and guides.
-
由 Renan Gurgel 提交于
-
由 Ryuta Kamizono 提交于
Currently alias tracker only refer a table name, doesn't respect an alias name. Should use `join.left.name` rather than `join.left.table_name`.
-
由 Renan Gurgel 提交于
Improve a code style recommendation following Rubocop instructions https://codeclimate.com/github/rails/rails/issues
-
由 Ryuta Kamizono 提交于
Remove `supports_disable_referential_integrity?`
-
由 Yasuo Honda 提交于
`supports_disable_referential_integrity?` used to handle if PostgreSQL database supports `ALTER TABLE <table name> DISABLE/ENABLE TRIGGER` statements. Refer https://github.com/rails/rails/commit/9a947af0e79cfb8692eb7e5ae94c1b8c40756f49 These statements have been documented since 8.1. https://www.postgresql.org/docs/8.1/static/sql-altertable.html > DISABLE/ENABLE TRIGGER Now Rails supports PostgreSQL 9.1 or higher only. No need to handle `supports_disable_referential_integrity?` anymore. Also, this method does not exist in any other adapters including AbstractAdapter.
-