Class: Markdownator::Converters::Zip
- Defined in:
- lib/markdownator/converters/zip.rb
Overview
Converts a ZIP archive by recursing each contained file back through the engine and concatenating the results under per-file headings.
Instance Method Summary collapse
Instance Method Details
#accepts?(io, stream_info) ⇒ Boolean
10 11 12 13 14 |
# File 'lib/markdownator/converters/zip.rb', line 10 def accepts?(io, stream_info) return true if matches?(stream_info, extensions: %w[zip], mimetypes: %w[application/zip]) magic_zip?(io) end |
#convert(io, _stream_info, **options) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/markdownator/converters/zip.rb', line 16 def convert(io, _stream_info, **) Markdownator.require_optional("zip", feature: "ZIP conversion") engine = [:engine] || Engine.new sections = [] ::Zip::File.open_buffer(io) do |zip| zip.entries.sort_by(&:name).each do |entry| next if entry.directory? section = convert_entry(engine, entry, ) sections << section unless section.nil? end end Result.new(markdown: sections.join("\n\n")) end |