Module: Unicoder::Downloader

Defined in:
lib/unicoder/downloader.rb

Class Method Summary collapse

Class Method Details

.fetch(identifier, unicode_version: CURRENT_UNICODE_VERSION, destination_directory: LOCAL_DATA_DIRECTORY, destination: nil, filename: nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/unicoder/downloader.rb', line 6

def self.fetch(identifier,
    unicode_version: CURRENT_UNICODE_VERSION,
    destination_directory: LOCAL_DATA_DIRECTORY,
    destination: nil,
    filename: nil
  )
  filename = UNICODE_FILES[identifier.to_sym] || filename
  raise ArgumentError, "No valid file identifier or filename given" if !filename
  filename.sub! 'VERSION', unicode_version
  source = UNICODE_DATA_ENDPOINT + filename
  destination ||= destination_directory + filename

  open(source){ |f|
    FileUtils.mkdir_p(File.dirname(destination))
    File.write(destination, f.read)
  }

  puts "GET #{source} => #{destination}"
rescue => e
  $stderr.puts "#{e.class}: #{e.message}"
end