Sha256: fa29102eec68224b79c2e7100be17498f95caffa2d4fe7f60ae927e05528ea94

Contents?: true

Size: 887 Bytes

Versions: 44

Compression:

Stored size: 887 Bytes

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.read(file, unzip: nil)
      file = open(file, unzip: unzip)
      path = ::File.path(file)
      return ::File.read(path)
    end

    def self.open(file, unzip: nil)
      file = Kernel.open(file)
      file = normalize_file(file) if file.is_a?(StringIO)
      file = find_in_zip(file, unzip) if Unzip.is_zip?(file)
      return file
    end

    def self.normalize_file(file)
      Tempfile.new.tap do |temp|
        temp.binmode
        temp.write(file.read)
        temp.rewind
      end
    end

    def self.find_in_zip(file, unzip)
      raise "Must specify an :unzip option if opening a zip file. e.g. open(file, :find => '.shp')" unless unzip
      return File.open(Unzip.paths(file, :find => unzip))
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
spatial_features-2.10.1 lib/spatial_features/download.rb
spatial_features-2.10.0 lib/spatial_features/download.rb
spatial_features-2.9.3 lib/spatial_features/download.rb
spatial_features-2.9.2 lib/spatial_features/download.rb
spatial_features-2.9.1 lib/spatial_features/download.rb
spatial_features-2.9.0 lib/spatial_features/download.rb
spatial_features-2.8.1 lib/spatial_features/download.rb
spatial_features-2.8.0 lib/spatial_features/download.rb
spatial_features-2.7.8 lib/spatial_features/download.rb
spatial_features-2.7.7 lib/spatial_features/download.rb
spatial_features-2.7.6 lib/spatial_features/download.rb
spatial_features-2.7.5 lib/spatial_features/download.rb
spatial_features-2.7.4 lib/spatial_features/download.rb
spatial_features-2.7.2 lib/spatial_features/download.rb
spatial_features-2.7.1 lib/spatial_features/download.rb
spatial_features-2.7.0 lib/spatial_features/download.rb
spatial_features-2.6.4 lib/spatial_features/download.rb
spatial_features-2.6.3 lib/spatial_features/download.rb
spatial_features-2.6.2 lib/spatial_features/download.rb
spatial_features-2.6.1 lib/spatial_features/download.rb