Open HosokawaR opened 5 months ago
You see, I'm temped to NOT do anything about this issue in RubyXL
since all that it does is passing the buffer
to RubyZip
; from that point, it's RubyZip
responsebility: if it modifies buffer
, it's it's fault, not RubyXL
s. I do not appreciate this behavior, as there's no reason why it should ever modify the buffer, but that's what they do.
I figured out that when I pass a String
to RubyZip
, then .freeze
'ing it before passing it over does the trick.
I don't have a problem adding a warning about that workaround to the documentation. But I think RubyZip
's issues need to be handled with its developers.
See the discussion here.
I confirmed that this issue is resolved with rubyzip 2.4.rc1. https://github.com/rubyzip/rubyzip/issues/280#issuecomment-2043040338
I hope to close this issue with an rubyzip official release and an upgrade of rubyzip's dependencies.
Yes, I tried to update gems but rubyzip is not showing up as updated. I assume the reason is that it's RC and not released yet. Once it is, I will update dependencies.
It has been nearly 5 months but the latest version on Rubygems is still 2.3.2
?
Thank you for creating such a wonderful library.
I noticed that
RubyXL::Parser.parse_buffer
implicitly changes thebuffer
received as an argument. But considering the name#parse_buffer
, I don't think the passed argumentbuffer
should be modifed.Below is the minimal example.
buffer
has been modified and increased in size.The cause was that when
Zip::File.open_buffer
was called with block, the supplied argumentbuffer
was changed. https://github.com/rubyzip/rubyzip/blob/73c8e110ed1dbcff08ffa48bb1b094abd0348502/lib/zip/file.rb#L122I think we can fix this problem by not using block.
→ I also created a PR. https://github.com/weshatheleopard/rubyXL/pull/454
It's a minor problem, but I get it sometimes, so I think it would be nice if it could be fixed. In my case, I discovered this problem because when I attached the parsed Excel file to an email, the Excel file was corrupted.