Sha256: a2dd4e2dbbda7bf2418bfe2e970a3c37601cea5949c9408fca58a7d1a79460cb

Contents?: true

Size: 1.39 KB

Versions: 8

Compression:

Stored size: 1.39 KB

Contents

require 'zip'

module UsdaNutrientDatabase
  module Import
    class Downloader

      attr_reader :directory, :version

      def initialize(directory = 'tmp/usda', version = 'sr25')
        @directory = directory
        @version = version
      end

      def cleanup
        UsdaNutrientDatabase.log 'Cleaning up data'
        FileUtils.rm_rf(directory)
      end

      def download_and_unzip
        download and unzip
      end

      def path
        [
          'SP2UserFiles', 'Place', '12354500', 'Data', version.upcase,
          'dnload', "#{version}.zip"
        ].join('/')
      end

      def download
        UsdaNutrientDatabase.log "Downloading USDA data version: #{version}"
        unless File.directory?(directory)
          FileUtils.mkdir_p("#{directory}/#{version}")
        end
        File.open("#{directory}/#{version}.zip", 'w+b') do |file|
          file.write connection.get(path).body
        end
      end

      def unzip
        UsdaNutrientDatabase.log 'Unzipping data'
        Zip::File.open("#{directory}/#{version}.zip") do |zipfile|
          zipfile.each do |file|
            unless File.exist?("#{directory}/#{version}/#{file.name}")
              zipfile.extract(file, "#{directory}/#{version}/#{file.name}")
            end
          end
        end
      end

      def connection
        @connection ||= Faraday.new(url: 'http://www.ars.usda.gov')
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
usda-nutrient-database-1.1.0 lib/usda_nutrient_database/import/downloader.rb
usda-nutrient-database-1.0.1 lib/usda_nutrient_database/import/downloader.rb
usda-nutrient-database-1.0.0 lib/usda_nutrient_database/import/downloader.rb
usda-nutrient-database-0.8.1 lib/usda_nutrient_database/import/downloader.rb
usda-nutrient-database-0.8.0 lib/usda_nutrient_database/import/downloader.rb
usda-nutrient-database-0.7.0 lib/usda_nutrient_database/import/downloader.rb
usda-nutrient-database-0.6.0 lib/usda_nutrient_database/import/downloader.rb
usda-nutrient-database-0.5.0 lib/usda_nutrient_database/import/downloader.rb