Sha256: acf52e38c0a628e3ac1683d0f3a7ad3765703d9d444f08f3224a283a0a8e4810

Contents?: true

Size: 855 Bytes

Versions: 2

Compression:

Stored size: 855 Bytes

Contents

# frozen_string_literal: true

module Terradactyl
  module Terraform
    module VersionManager
      class Downloader
        attr_accessor :url
        attr_reader :fh

        def self.fetch(url)
          new.fetch(url: url)
        end

        def initialize(url: nil)
          @url = url
        end

        def fetch(url: self.url)
          begin
            @fh   = URI.parse(url).open
            @path = @fh.path
          rescue OpenURI::HTTPError => e
            puts "Can't access #{url}", e.message
          end
          @fh
        end

        def checksum
          Digest::SHA256.file(path).hexdigest
        end

        def path
          @fh.path
        rescue NameError
          nil
        end

        def delete
          return unless @fh

          @fh.close
          @fh.unlink
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
terradactyl-terraform-1.8.2 lib/terradactyl/terraform/version_manager/downloader.rb
terradactyl-terraform-1.8.1 lib/terradactyl/terraform/version_manager/downloader.rb