Class: Chef::Provider::RemoteFile::Fetcher
- Inherits:
-
Object
- Object
- Chef::Provider::RemoteFile::Fetcher
- Defined in:
- lib/chef/provider/remote_file/fetcher.rb
Class Method Summary collapse
- .for_resource(uri, new_resource, current_resource) ⇒ Object
-
.network_share?(source) ⇒ Boolean
Windows network share: \computernamesharefile.
Class Method Details
.for_resource(uri, new_resource, current_resource) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/chef/provider/remote_file/fetcher.rb', line 25 def self.for_resource(uri, new_resource, current_resource) if network_share?(uri) Chef::Provider::RemoteFile::NetworkFile.new(uri, new_resource, current_resource) else case uri.scheme when "http", "https" Chef::Provider::RemoteFile::HTTP.new(uri, new_resource, current_resource) when "ftp" Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) when "sftp" Chef::Provider::RemoteFile::SFTP.new(uri, new_resource, current_resource) when "file" Chef::Provider::RemoteFile::LocalFile.new(uri, new_resource, current_resource) else raise ArgumentError, "Invalid uri, Only http(s), ftp, and file are currently supported" end end end |
.network_share?(source) ⇒ Boolean
Windows network share: \computernamesharefile
45 46 47 48 49 50 51 52 |
# File 'lib/chef/provider/remote_file/fetcher.rb', line 45 def self.network_share?(source) case source when String !!(%r{\A\\\\[A-Za-z0-9+\-\.]+} =~ source) else false end end |