Module: Downloader

Included in:
Imgdowner, Use
Defined in:
lib/imgdowner/downloader.rb

Defined Under Namespace

Classes: ExistErr, FormatErr, ResponseErr

Instance Method Summary collapse

Instance Method Details

#download(src) ⇒ Object

Raises:



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/imgdowner/downloader.rb', line 9

def download(src)
    errMsg = ["you should check your format in (jpg/jpeg/png)",
        "you should check your format in (https|http://,,,)",
        "your want to create file: {file}, which is exist",
        "download status code {status} is not expected"   
    ]
    raise FormatErr.new(errMsg[0]) unless src =~ /(.*)(\.jpg|\.png\.jpeg)$/
    begin
        @dir = "./img" unless defined? @dir
        Dir.mkdir(@dir, 0700) unless Dir.exist?(@dir)
        raise FormatErr.new(errMsg[1]) unless src =~ /(http|https):\/\/(.+?)([^\/]+)$/
        placed = File.join(@dir, $3)
        @mod_placed = placed
        raise ExistErr.new(errMsg[2].sub(/{file}/, placed)) if File.exist?(placed)
        open(src) do |res|
            raise ResponseErr.new(errMsg[3].sub(/{status}/, res.status[0])) unless res.status[0] == "200"
            File.open(placed, "w") do |f|
                f.binmode
                f.write(res.read)
            end
        end
    rescue => exception
        raise exception
    else
    end
end

#placedObject

It’s belong to mod create for out-world



36
37
38
# File 'lib/imgdowner/downloader.rb', line 36

def placed()
    @mod_placed
end