Sha256: ead86454aa33397f447146509f26ecaada44777c4fb7a7fd121f2e982bc15655
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
require 'open-uri' module SpatialFeatures module Download # file can be a url, path, or file, any of which can return be a zipped archive def self.open(file) file = Kernel.open(file) file = normalize_file(file) if file.is_a?(StringIO) return file end # file can be a url, path, or file, any of which can return be a zipped archive def self.open_each(file, unzip: nil, **unzip_options) file = Download.open(file) files = if unzip && Unzip.is_zip?(file) find_in_zip(file, find: unzip, **unzip_options) else [file] end return files.map { |f| File.open(f) } end def self.normalize_file(file) Tempfile.new.tap do |temp| temp.binmode temp.write(file.read) temp.rewind end end def self.entries(file) file = Kernel.open(file) file = normalize_file(file) if file.is_a?(StringIO) Unzip.entries(file) end def self.find_in_zip(file, find:, **unzip_options) Unzip.paths(file, :find => find, **unzip_options) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spatial_features-3.1.0 | lib/spatial_features/download.rb |
spatial_features-3.0.2 | lib/spatial_features/download.rb |