Commit Graph

1799 Commits

Author SHA1 Message Date
Javan Makhmali
48de6e9bda Revert unintentional change in 41e3bbd 2018-01-01 13:24:51 -05:00
Javan Makhmali
41e3bbdee1 Improve preventDefault fix for rails-ujs
Improves 049a3374aa85f33091f0e7cba8635edd4b4786bd:

* Attempt native `preventDefault()` before stepping in
* Fix that calling `preventDefault()` more than once would throw an error
* Fix that non-cancelable events could be canceled
2018-01-01 13:02:07 -05:00
Yoshiyuki Hirano
b20354afcc Bump license years for 2018 2017-12-31 22:36:55 +09:00
Ryuta Kamizono
11c06d3cbf Remove needless blank lines [ci skip]
This broke the doc.
2017-12-30 16:58:47 +09:00
George Claghorn
35e9638daf
Merge pull request #31578 from Aquaj/feature/allow-callables-in-select-group-methods
Allow the use of callable objects as group methods for grouped selects.
2017-12-29 20:15:26 -05:00
Jérémie Bonal
0d73056436 Allow the use of callable objects as group methods for grouped selects.
Replaced the uses of `group.send(...)` in `option_groups_from_collection_for_select`
by calls to `value_for_collection(group, ...)`, allowing the use of
procs, lambdas and other callable objects as parameters.
2017-12-27 17:49:07 +01:00
Yuri S
049a3374aa
Fix IE 10 and IE 11's broken preventDefault
https://github.com/turbolinks/turbolinks/issues/233
https://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events
2017-12-27 18:39:44 +05:00
Yasuo Honda
e4a6a23aa7 Suppress warning: BigDecimal.new is deprecated
`BigDecimal.new` has been deprecated in BigDecimal 1.3.3
 which will be a default for Ruby 2.5.

Refer
533737338d

* This commit has been made as follows:

```
cd rails
git grep -l BigDecimal.new | grep -v guides/source/5_0_release_notes.md | grep -v activesupport/test/xml_mini_test.rb | xargs sed -i -e "s/BigDecimal.new/BigDecimal/g"
```
- `activesupport/test/xml_mini_test.rb`
Editmanually to remove `.new` and `::`

- guides/source/5_0_release_notes.md
This is a Rails 5.0 release notes.
2017-12-15 01:19:57 +00:00
Eileen M. Uchitelle
659c516bef
Merge pull request #31289 from witlessbird/fips-compatibility
Initial support for running Rails on FIPS-certified systems
2017-12-14 09:58:33 -05:00
Ryuta Kamizono
245c1dafa8 Enable Layout/LeadingCommentSpace to not allow cosmetic changes in the future
Follow up of #31432.
2017-12-14 17:30:54 +09:00
Dmitri Dolguikh
82822a3421 Introduced ActiveSupport::Digest that allows to specify hash function implementation
and defaults to `Digest::MD5`.

Replaced calls to `::Digest::MD5.hexdigest` with calls to `ActiveSupport::Digest.hexdigest`.
2017-12-12 11:23:54 -08:00
Ryuta Kamizono
2b35826389 Enable Layout/SpaceBeforeComma rubocop rule, and fixed more
Follow up of #31390.
2017-12-12 20:00:50 +09:00
Eileen M. Uchitelle
4edce566ad
Merge pull request #30361 from mfo/master
StreamingTemplateRenderer fails to forward I18n.locale in layouts
2017-12-11 08:08:03 -05:00
maciej-ka
46a4ac8a36 docs: add example for a nil name in link_to 2017-12-07 01:43:43 +01:00
Ryuta Kamizono
6b16f6db27 Tweaks CHANGELOGs [ci skip] 2017-12-01 20:42:04 +09:00
Guillermo Iguaran
eb90b8bc86 Add preload_link_tag helper.
This helper creates a link tag with preload keyword that allows to
browser to initiate early fetch of resources. Additionally this send
Early Hints if supported.

See 59a02fb7bc
for more details about Early Hints.

Preload spec: https://w3c.github.io/preload/
2017-11-28 20:53:30 -05:00
Rafael Mendonça França
61214632f4
Make sure the request exist befoe trying to send early hints
Action Mailer context for example responds to request but don't have a
a request object.

Fixes #31265
2017-11-28 14:56:47 -05:00
Rafael Mendonça França
2837d0f334
Preparing for 5.2.0.beta2 release 2017-11-28 14:41:02 -05:00
Fatos Morina
37cf9b3466 Fix typos and add a few suggestions 2017-11-28 19:27:43 +01:00
Rafael Mendonça França
cceeeb6e57
Preparing for 5.2.0.beta1 release 2017-11-27 14:50:03 -05:00
Rafael Mendonça França
21cd5b3031
Make form_with_generates_ids default value to be false
This will keep the behavior of an application with the defaults of a 4.2
or 5.0 application behaving the same when upgrading to 5.2.
2017-11-27 11:52:39 -05:00
Ryuta Kamizono
7ce8a6af1b Enable Style/DefWithParentheses rubocop rule
The def with blank `()` was newly added in #31176, but we have not used
the blank `()` style in most part of our code base.
So I've enabled `Style/DefWithParentheses` to prevent to newly added the
code.
2017-11-27 15:16:12 +09:00
mfo
6d3b57fe42 fix(streaming_template_renderer): I18n.locale broken in layout. I18n gem stores the current locale in Thread.current[:local] (see: https://github.com/svenfuchs/i18n/blob/master/lib/i18n.rb#L23). StreamingTemplateRenderer is implemented with Fiber which have its own stack of locals and can not access Thread.current.locals(keys, see: https://ruby-doc.org/core-2.2.0/Thread.html#class-Thread-label-Fiber-local+vs.+Thread-local). 2017-11-25 21:32:02 +01:00
Rafael Mendonça França
d82b706184
Add test to make sure form_for is not affected by
form_with_generates_ids
2017-11-25 15:17:31 -05:00
Rafael Mendonça França
aec8464881
Make sure that form_with_generates_ids only affects form_with 2017-11-25 15:08:19 -05:00
Rafael Mendonça França
36ac675d2a
Make form_with_generates_ids default in Rails 5.2
When the defaults being loaded are the 5.0 or 5.1 we disable generation
of ids with form_with.
2017-11-25 11:56:31 -05:00
npezza93
260d6f112a
Change form_with to generates ids by default
When `form_with` was introduced we disabled the automatic
generation of ids that was enabled in `form_for`. This usually
is not an good idea since labels don't work when the input
doesn't have an id and it made harder to test with Capybara.

You can still disable the automatic generation of ids setting
`config.action_view.form_with_generates_ids` to `false.`
2017-11-25 11:55:02 -05:00
Ryuta Kamizono
570ae8f873 Fix asset url examples [ci skip] 2017-11-15 09:11:33 +09:00
Rafael França
0160115511
Merge pull request #30963 from q-centrix/performance-improvements-add_method_to_attributes
Performance improvements for add_method_to_attributes!
2017-11-14 14:28:02 -05:00
aycabta
9db2ef9cb1 Use new Rake URL of Ruby core [ci skip] 2017-11-10 18:14:50 +09:00
Rafael França
dac7c8844b
Merge pull request #31088 from neumayr/am-helper-missing-field_with_errors
field_error_proc wrap form select optgroup and separator option
2017-11-09 13:10:52 -05:00
neumayr
ead4776b82 Fix field_error_proc wrap form select optgroup and divider option tag
### Summary

The [`:field_error_proc`](https://github.com/rails/rails/blob/master/actionview/lib/action_view/base.rb#L145) is responsible for decorating input tags that refer to attributes with errors. This default build-in rails feature wrap invalid form elements with additional markup: `<div class="field_with_errors">[…]</div>`.

* Fix for `field_error_proc` wraps form select `optgroup`
* Fix for `field_error_proc` wraps form select divider `option`
* Add tests for uncovered elements with errors

[Fixes #31088]

#### Test coverage
* `test_select_grouped_options_with_errors`
* `test_time_zone_select_with_priority_zones_and_errors`

#### Extend test coverage
* `test_collection_select_with_errors`
* `test_label_with_errors`
* `test_check_box_with_errors`
* `test_check_boxes_with_errors`
* `test_radio_button_with_errors`
* `test_radio_buttons_with_errors`
* `test_collection_check_boxes_with_errors`
* `test_collection_radio_buttons_with_errors`
2017-11-09 17:37:06 +01:00
yuuji.yaginuma
2a6852c6ef Correctly kill the server started with ujs test
`Kernel.#spawn` execute command via the shell if contains shell
metacharacters in the command.
In that case, return value of `spawn` is pid of the shell, not the server.
Therefore, just killing the pid will leave the process of server.

In order to correctly kill the server, send a signal to the process
group, not the process.
2017-11-09 11:34:05 +09:00
yuuji.yaginuma
8d60dcd024 Fix output of select_tag with include_blank: true [ci skip]
Since #24923, if use `select_tag` with `include_blank: true`, an empty
label is added.
2017-11-08 16:46:57 +09:00
Dillon Welch
c57e914cd1 Performance improvements for add_method_to_attributes!
Prevents two string allocations per method call for common REST verbs
plus a ~1.5x speedup for :get in particular

```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

@html_options = {}

def master_version
  if @method && @method.to_s.downcase != "get" && @html_options["rel".freeze] !~ /nofollow/
    @html_options["rel".freeze] = "#{@html_options["rel".freeze]} nofollow".lstrip
  end
  @html_options["data-method".freeze] = @method
end

def fast_version
  if method_not_get_method?(@method) && @html_options["rel".freeze] !~ /nofollow/
    @html_options["rel".freeze] = "#{@html_options["rel".freeze]} nofollow".lstrip
  end
  @html_options["data-method".freeze] = @method
end

STRINGIFIED_COMMON_METHODS = {
  get:    'get',
  delete: 'delete',
  patch:  'patch',
  post:   'post',
  put:    'put',
}.freeze

def method_not_get_method?(method)
  return false unless method
  (STRINGIFIED_COMMON_METHODS[method] || method.to_s.downcase) != 'get'
end

puts 'get'
@method = :get

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 'delete'
@method = :delete

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
```

```
get
master_version
{:FREE=>-1819, :T_STRING=>2052}
fast_version
{:FREE=>-1}
Warming up --------------------------------------
      master_version   140.839k i/100ms
        fast_version   175.639k i/100ms
Calculating -------------------------------------
      master_version      2.683M (± 7.1%) i/s -     13.380M in   5.013447s
        fast_version      3.988M (±10.1%) i/s -     19.847M in   5.039580s

Comparison:
        fast_version:  3988340.3 i/s
      master_version:  2683336.2 i/s - 1.49x  slower

delete
master_version
{:FREE=>-5003, :T_STRING=>3003, :T_MATCH=>999, :T_IMEMO=>1000}
fast_version
{:FREE=>-3002, :T_STRING=>1001, :T_MATCH=>1000, :T_IMEMO=>1000}
Warming up --------------------------------------
      master_version    47.221k i/100ms
        fast_version    44.153k i/100ms
Calculating -------------------------------------
      master_version    597.881k (±11.4%) i/s -      2.975M in   5.047200s
        fast_version    686.014k (±11.6%) i/s -      3.400M in   5.036564s

Comparison:
        fast_version:   686014.5 i/s
      master_version:   597881.4 i/s - same-ish: difference falls within error
```
2017-11-07 09:24:49 -08:00
Dillon Welch
0f28957edd Merge remote-tracking branch 'upstream/master' into nofollow-change 2017-11-03 19:58:28 -07:00
Dillon Welch
ec13ef7526 Fix typo 2017-11-02 17:54:54 -07:00
Dillon Welch
d404e2cbe9 Use blank? check instead of key? check
This allows us to prevent an extra string allocation when there is a rel
argument and performs better/within error of the key check for other
scenarios such as passing in rel: nil

```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"]} nofollow".lstrip
end

def key_version
  if @hash.key?("rel")
    "#{@hash["rel"]} nofollow".lstrip
  else
    "nofollow"
  end
end

def present_version
  if @hash["rel"].present?
    "#{@hash["rel"]} nofollow"
  else
    "nofollow".freeze
  end
end

def nil_version
  if @hash["rel"].nil?
    "nofollow".freeze
  else
    "#{@hash["rel"]} nofollow"
  end
end

def blank_version
  if @hash["rel"].blank?
    "nofollow".freeze
  else
    "#{@hash["rel"]} nofollow"
  end
end

def test
  puts "master_version"
  puts allocate_count { 1000.times { master_version } }
  puts "key_version"
  puts allocate_count { 1000.times { key_version } }
  puts "present_version"
  puts allocate_count { 1000.times { present_version } }
  puts "nil_version"
  puts allocate_count { 1000.times { nil_version } }
  puts "blank_version"
  puts allocate_count { 1000.times { blank_version } }

  Benchmark.ips do |x|
    x.report("master_version")  { master_version }
    x.report("key_version")     { key_version }
    x.report("present_version") { present_version }
    x.report("nil_version")     { nil_version }
    x.report("blank_version")     { blank_version }
    x.compare!
  end
end

puts 'no rel key'

test

puts 'rel key with real stuff'

@hash['rel'] = 'hi'.freeze

test

puts 'rel key with nil'

@hash['rel'] = nil

test

puts 'rel key with ""'

@hash['rel'] = ""

test
```

```
no rel key
master_version
{:FREE=>-2818, :T_STRING=>3052}
key_version
{:FREE=>-1}
present_version
{:FREE=>-1}
nil_version
{:FREE=>-1}
blank_version
{:FREE=>-1}
Warming up --------------------------------------
      master_version   124.677k i/100ms
         key_version   227.992k i/100ms
     present_version   208.068k i/100ms
         nil_version   235.272k i/100ms
       blank_version   176.274k i/100ms
Calculating -------------------------------------
      master_version      1.968M (±10.8%) i/s -      9.725M in   5.010763s
         key_version      7.734M (±11.2%) i/s -     38.075M in   5.001613s
     present_version      5.688M (±11.4%) i/s -     28.089M in   5.019560s
         nil_version      6.965M (±10.2%) i/s -     34.585M in   5.024806s
       blank_version      6.139M (±18.7%) i/s -     29.085M in   5.010919s

Comparison:
         key_version:  7734058.3 i/s
         nil_version:  6965050.2 i/s - same-ish: difference falls within error
       blank_version:  6138744.3 i/s - same-ish: difference falls within error
     present_version:  5688248.4 i/s - 1.36x  slower
      master_version:  1967932.3 i/s - 3.93x  slower

rel key with real stuff
master_version
{:FREE=>-2001, :T_STRING=>2000}
key_version
{:FREE=>-2001, :T_STRING=>2000}
present_version
{:FREE=>-1001, :T_STRING=>1000}
nil_version
{:FREE=>-1002, :T_STRING=>1000, :T_IMEMO=>1}
blank_version
{:FREE=>-1001, :T_STRING=>1000}
Warming up --------------------------------------
      master_version    93.351k i/100ms
         key_version    89.747k i/100ms
     present_version    91.963k i/100ms
         nil_version   103.370k i/100ms
       blank_version    74.845k i/100ms
Calculating -------------------------------------
      master_version      2.179M (±21.4%) i/s -     10.362M in   5.044668s
         key_version      2.345M (± 9.8%) i/s -     11.667M in   5.030982s
     present_version      1.738M (±14.8%) i/s -      8.553M in   5.056406s
         nil_version      2.485M (±19.1%) i/s -     11.888M in   5.015940s
       blank_version      1.951M (±12.3%) i/s -      9.580M in   5.011932s

Comparison:
         nil_version:  2484704.1 i/s
         key_version:  2344664.8 i/s - same-ish: difference falls within error
      master_version:  2178975.8 i/s - same-ish: difference falls within error
       blank_version:  1950532.0 i/s - same-ish: difference falls within error
     present_version:  1737866.7 i/s - 1.43x  slower

rel key with nil
master_version
{:FREE=>-3001, :T_STRING=>3000}
key_version
{:FREE=>-3001, :T_STRING=>3000}
present_version
{:FREE=>-1}
nil_version
{:FREE=>-1}
blank_version
{:FREE=>-1}
Warming up --------------------------------------
      master_version   112.655k i/100ms
         key_version   105.048k i/100ms
     present_version   136.219k i/100ms
         nil_version   192.026k i/100ms
       blank_version   184.846k i/100ms
Calculating -------------------------------------
      master_version      1.893M (±12.6%) i/s -      9.238M in   5.002621s
         key_version      1.672M (±13.5%) i/s -      8.194M in   5.021197s
     present_version      4.484M (±20.5%) i/s -     21.114M in   5.002982s
         nil_version      5.294M (±18.1%) i/s -     25.155M in   5.020721s
       blank_version      5.588M (± 6.7%) i/s -     27.912M in   5.019305s

Comparison:
       blank_version:  5588489.6 i/s
         nil_version:  5293929.9 i/s - same-ish: difference falls within error
     present_version:  4484493.7 i/s - same-ish: difference falls within error
      master_version:  1892919.0 i/s - 2.95x  slower
         key_version:  1672343.9 i/s - 3.34x  slower

rel key with ""
master_version
{:FREE=>-2001, :T_STRING=>2000}
key_version
{:FREE=>-2001, :T_STRING=>2000}
present_version
{:FREE=>-1}
nil_version
{:FREE=>-1001, :T_STRING=>1000}
blank_version
{:FREE=>-1}
Warming up --------------------------------------
      master_version   140.499k i/100ms
         key_version   124.738k i/100ms
     present_version   186.659k i/100ms
         nil_version   148.063k i/100ms
       blank_version   178.707k i/100ms
Calculating -------------------------------------
      master_version      1.826M (±24.2%) i/s -      8.289M in   5.026603s
         key_version      1.561M (±15.3%) i/s -      7.609M in   5.005662s
     present_version      3.622M (±19.9%) i/s -     17.173M in   5.042217s
         nil_version      2.438M (±11.5%) i/s -     12.141M in   5.053335s
       blank_version      4.911M (±15.5%) i/s -     23.768M in   5.009106s

Comparison:
       blank_version:  4910741.1 i/s
     present_version:  3622183.5 i/s - same-ish: difference falls within error
         nil_version:  2437606.2 i/s - 2.01x  slower
      master_version:  1825652.2 i/s - 2.69x  slower
         key_version:  1560530.5 i/s - 3.15x  slower
```
2017-11-02 14:50:38 -07:00
yuuji.yaginuma
d5defda77f Fix "warning: instance variable @defined_root not initialized"
Currently, the following error is shows only when run the test using
`bin/test`.

```
./bin/test -w test/template/log_subscriber_test.rb
Run options: --seed 17167

# Running:

/rails/actionview/test/template/log_subscriber_test.rb:34: warning: instance variable @defined_root not initialized
```

In `AVLogSubscriberTest`, if the `Rails.root` is not defined, define the
method and undef it in teardown.
https://github.com/rails/rails/blob/master/actionview/test/template/log_subscriber_test.rb#L21..L33

However, in `bin/test`, `Rails.root` is defined, which results in referring to
uninitialized variables and warnings.
2017-11-02 10:08:21 +09:00
Rafael França
a8ebd48559
Merge pull request #31004 from shuheiktgw/remove_unnecessary_returns
Remove redundant return statements
2017-10-31 01:47:35 -04:00
Rafael França
2240d44399
Merge pull request #31012 from y-yagi/remove_unused_missing_requests_error
Remove unused `MissingRequestError`
2017-10-30 19:59:19 -04:00
yuuji.yaginuma
952eb506eb Remove unused MissingRequestError
`MissingRequestError` is no longer used since 1e2b0ce.
2017-10-31 08:48:15 +09:00
Guillermo Iguaran
ee44c1b6f1
Merge pull request #31002 from ta1kt0me/call_ajax_without_beforeSend
Call Rails.ajax without beforeSend
2017-10-29 23:28:16 -05:00
Matthew Draper
7d264ba8cd Merge pull request #31005 from shuheiktgw/remove_unnecessary_semicolons
Removed unnecessary semicolons
2017-10-28 22:55:34 +10:30
Shuhei Kitagawa
c40b4428e6 removed unnecessary returns 2017-10-28 17:20:38 +09:00
ta1kt0me
8b22725c78 Enable to call Rails.ajax without beforeSend 2017-10-28 12:13:19 +09:00
Dillon Welch
f5f0b49b9b Prevent extra string allocations when no 'rel' arg passed
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
```
2017-10-26 18:19:14 -07:00
Akira Matsuda
731ea4e3fb Merge pull request #30513 from y-yagi/fix_30444
Does not include disabled element in params
2017-10-25 21:10:37 +09:00
Rafael Mendonça França
7de7f12fd1
Remove deprecated Erubis ERB handler 2017-10-23 12:50:31 -04:00
Guillermo Iguaran
13132d8c32 Merge pull request #29710 from padi/rails-ujs-docs
Adds descriptions to rails-ujs methods [ci skip]
2017-10-22 07:55:44 -05:00