class Goodcheck::Unarchiver
Attributes
file_filter[R]
Public Class Methods
new(file_filter: ->(_filename) { true }
click to toggle source
# File lib/goodcheck/unarchiver.rb, line 5 def initialize(file_filter: ->(_filename) { true }) @file_filter = file_filter end
Public Instance Methods
tar_gz(content) { |read, full_name| ... }
click to toggle source
# File lib/goodcheck/unarchiver.rb, line 15 def tar_gz(content) require "rubygems/package" Gem::Package::TarReader.new(StringIO.new(gz(content))) do |tar_reader| tar_reader.each do |file| if file.file? && file_filter.call(file.full_name) yield file.read, file.full_name end end end end
tar_gz?(filename)
click to toggle source
# File lib/goodcheck/unarchiver.rb, line 9 def tar_gz?(filename) name = filename.to_s.downcase ext = ".tar.gz" name.end_with?(ext) && name != ext end
Private Instance Methods
gz(content)
click to toggle source
# File lib/goodcheck/unarchiver.rb, line 29 def gz(content) require "zlib" io = Zlib::GzipReader.new(StringIO.new(content)) begin io.read ensure io.close end end