diff options
| author | Zsolt Kozaroczy <[email protected]> | 2023-05-31 09:06:35 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-05-31 09:06:35 +0200 |
| commit | c1061e34e294f87030128abf1730fcf4a5ecb406 (patch) | |
| tree | c0c75f41ec59362bcc40edbfe238c2f8878cb93c | |
| parent | f7a8edbefb4311d24f37b9372982a03d823654fd (diff) | |
| parent | 5dea3e7092fb3a4667cbb50a9885d0ec4aed77b7 (diff) | |
| download | caxlsx-c1061e34e294f87030128abf1730fcf4a5ecb406.tar.gz caxlsx-c1061e34e294f87030128abf1730fcf4a5ecb406.zip | |
Merge pull request #255 from pkmiec/fixSimpleTypeListRegression
Use #== and #eql? from BasicObject
| -rw-r--r-- | lib/axlsx/util/simple_typed_list.rb | 6 | ||||
| -rwxr-xr-x | test/benchmark.rb | 17 |
2 files changed, 21 insertions, 2 deletions
diff --git a/lib/axlsx/util/simple_typed_list.rb b/lib/axlsx/util/simple_typed_list.rb index c3910fca..e74e25e3 100644 --- a/lib/axlsx/util/simple_typed_list.rb +++ b/lib/axlsx/util/simple_typed_list.rb @@ -15,6 +15,12 @@ module Axlsx undef_method name end + # We often call index(element) on instances of SimpleTypedList. Thus, we do not want to inherit Array + # implementation of == / eql? which walks the elements calling == / eql?. Instead we want the fast + # and original versions from BasicObject. + alias :== :equal? + alias :eql? :equal? + # Creats a new typed list # @param [Array, Class] type An array of Class objects or a single Class object # @param [String] serialize_as The tag name to use in serialization diff --git a/test/benchmark.rb b/test/benchmark.rb index d5ccdf64..fb4d7050 100755 --- a/test/benchmark.rb +++ b/test/benchmark.rb @@ -11,9 +11,22 @@ input1 = (32..126).to_a.pack('U*').chars.to_a # these will need to be escaped input2 = (65..122).to_a.pack('U*').chars.to_a # these do not need to be escaped 10.times { row << input1.shuffle.join } 10.times { row << input2.shuffle.join } -times = 3000 +times = 3_000 Benchmark.bmbm(30) do |x| + x.report('axlsx_merged_cells') do + p = Axlsx::Package.new + p.workbook do |wb| + wb.add_worksheet do |sheet| + times.times do + sheet << row + sheet.merge_cells(sheet.rows.last.cells) + end + end + end + p.serialize("example_axlsx_merged_cells.xlsx") + end + x.report('axlsx_noautowidth') do p = Axlsx::Package.new p.workbook do |wb| @@ -85,4 +98,4 @@ Benchmark.bmbm(30) do |x| end end end -File.delete("example.csv", "example_streamed.xlsx", "example_shared.xlsx", "example_autowidth.xlsx", "example_noautowidth.xlsx", "example_zip_command.xlsx") +File.delete("example_axlsx_merged_cells.xlsx", "example.csv", "example_streamed.xlsx", "example_shared.xlsx", "example_autowidth.xlsx", "example_noautowidth.xlsx", "example_zip_command.xlsx") |
