Sha256: dc7d1d271b9eca2d641558e1cab735952970512e13392816b47ef5442a04ef33

Contents?: true

Size: 831 Bytes

Versions: 17

Compression:

Stored size: 831 Bytes

Contents

module PEBuild
  module Transfer

    class UnhandledURIScheme < Vagrant::Errors::VagrantError
      error_key('unhandled_uri_scheme', 'pebuild.transfer')
    end

    require 'pe_build/transfer/open_uri'
    require 'pe_build/transfer/file'

    IMPLEMENTATIONS = {
      'http'  => PEBuild::Transfer::OpenURI,
      'https' => PEBuild::Transfer::OpenURI,
      'ftp'   => PEBuild::Transfer::OpenURI,
      'file'  => PEBuild::Transfer::File,
      nil     => PEBuild::Transfer::File, # Assume that URIs without a scheme are files
    }

    def self.generate(src, dst)
      scheme = src.scheme

      if (klass = IMPLEMENTATIONS[scheme])
        klass.new(src, dst)
      else
        raise UnhandledURIScheme, :scheme => scheme,
                                  :supported => IMPLEMENTATIONS.keys
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
vagrant-pe_build-0.8.8 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.7 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.6 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.5 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.4 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.3 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.2 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.1 lib/pe_build/transfer.rb
vagrant-pe_build-0.8.0 lib/pe_build/transfer.rb
vagrant-pe_build-0.7.1 lib/pe_build/transfer.rb
vagrant-pe_build-0.7.0 lib/pe_build/transfer.rb
vagrant-pe_build-0.6.0 lib/pe_build/transfer.rb
vagrant-pe_build-0.5.0 lib/pe_build/transfer.rb
vagrant-pe_build-0.4.3 lib/pe_build/transfer.rb
vagrant-pe_build-0.4.2 lib/pe_build/transfer.rb
vagrant-pe_build-0.4.1 lib/pe_build/transfer.rb
vagrant-pe_build-0.4.0 lib/pe_build/transfer.rb