Permalink
Browse files

Speed up Array#split

Ruby 2.0.0p247
Rehearsal ---------------------------------------
old  10.670000   0.150000  10.820000 ( 10.822651)
new   8.520000   0.050000   8.570000 (  8.571825)
----------------------------- total: 19.390000sec

          user     system      total        real
old  10.620000   0.170000  10.790000 ( 10.790409)
new   8.570000   0.110000   8.680000 (  8.686051)
  • Loading branch information...
1 parent 1333994 commit 4aadd160ff96839e2e87399ab90f85437b1218a8 @kuldeepaggarwal kuldeepaggarwal committed Nov 11, 2013
Showing with 3 additions and 3 deletions.
  1. +3 −3 activesupport/lib/active_support/core_ext/array/grouping.rb
@@ -83,10 +83,10 @@ def in_groups(number, fill_with = nil)
#
# [1, 2, 3, 4, 5].split(3) # => [[1, 2], [4, 5]]
# (1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]]
- def split(value = nil, &block)
- if block
+ def split(value = nil)
+ if block_given?
inject([[]]) do |results, element|
- if block.call(element)
+ if yield(element)
results << []
else
results.last << element

0 comments on commit 4aadd16

Please sign in to comment.