class RakeDependencies::Extractors::ZipExtractor
Public Class Methods
new(file_path, extract_path, options = {})
click to toggle source
# File lib/rake_dependencies/extractors.rb, line 9 def initialize(file_path, extract_path, options = {}) @file_path = file_path @extract_path = extract_path @options = options end
Public Instance Methods
extract()
click to toggle source
# File lib/rake_dependencies/extractors.rb, line 15 def extract FileUtils.mkdir_p(@extract_path) Zip::File.open(@file_path) do |zip_file_entries| zip_file_entries.each do |entry| entry_pathname = Pathname.new(entry.name) strip_pathname = Pathname.new(@options[:strip_path] || '') target_pathname = entry_pathname.relative_path_from(strip_pathname) file_path = File.join(@extract_path, target_pathname) FileUtils.mkdir_p(File.dirname(file_path)) zip_file_entries.extract(entry, file_path) unless File.exist?(file_path) end end end