Class: Excavate::Extractors::SevenZipExtractor

Inherits:
Extractor
  • Object
show all
Defined in:
lib/excavate/extractors/seven_zip_extractor.rb

Instance Method Summary collapse

Methods inherited from Extractor

eager_load_subclasses!, for_magic_type, handles, #initialize, registered_types, registry

Constructor Details

This class inherits a constructor from Excavate::Extractors::Extractor

Instance Method Details

#extract(target) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/excavate/extractors/seven_zip_extractor.rb', line 10

def extract(target)
  offset = Omnizip::Formats::SevenZip.search_embedded(@archive)

  if offset
    # Self-extracting archive - use offset
    Omnizip::Formats::SevenZip.open(@archive, offset: offset) do |reader|
      reader.extract_all(target)
    end
  else
    Omnizip::Formats::SevenZip.open(@archive) do |reader|
      reader.extract_all(target)
    end
  end
end