Module: Purple::Getter

Defined in:
lib/purple/getter.rb,
lib/purple/getter_cp.rb,
lib/purple/getter_curl.rb,
lib/purple/getter_wget.rb

Defined Under Namespace

Classes: Generic, Getter_cp, Getter_curl, Getter_wget

Class Method Summary collapse

Class Method Details

.new(url, destdir) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/purple/getter.rb', line 5

def self.new url, destdir
    puts "DEBUG Getter##new: url=#{url}" if $DEBUG
    @uri = URI.parse url
    plugin = case @uri.scheme
        when /http|ftp/
            getter = nil
            ENV['PATH'].split(':').each { |p|
                case true
                when FileTest.executable?(File.join(p, 'wget'))
                    getter = 'wget'
                    break
                when FileTest.executable?(File.join(p, 'wget'))
                    getter = 'wget'
                    break
                end
            }
            getter
        when 'file'
            'cp'
        else
            raise StandardError.new("Unable to handle scheme #{@uri.scheme}")
        end
    require "purple/getter_#{plugin}"
    (eval "Purple::Getter::Getter_#{plugin}").new @uri, destdir
end