Module: PEBuild::Transfer

Defined in:
lib/pe_build/transfer.rb

Defined Under Namespace

Classes: File, OpenURI, UnhandledURIScheme

Constant Summary collapse

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
}

Class Method Summary collapse

Class Method Details

.generate(src, dst) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/pe_build/transfer.rb', line 19

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