class FileGrabber::Grab

Public Class Methods

new() click to toggle source
# File lib/filegrabber/grab.rb, line 23
def initialize
  @grabs = {}
  instance_eval File.read(CONFIG_FILENAME)
end

Public Instance Methods

download(link_selector) click to toggle source
# File lib/filegrabber/grab.rb, line 50
def download link_selector
  @docpages.each do |page|
    link = page.link(link_selector)
    DownloadedDocument.new(page.filename).download do
      RemoteDocument.new(link).download
    end.tap do |doc|
      Log.info "Done. File size: #{doc.size}"
      if doc.download_failed?
        Log.warn "Download failed. Retry on next run."
      end
    end
  end
end
grab(name) click to toggle source
# File lib/filegrabber/grab.rb, line 32
def grab name
  instance_eval &@grabs[name]
end
grabber(name, &block) click to toggle source
# File lib/filegrabber/grab.rb, line 28
def grabber name, &block
  @grabs[name] = block
end
index(url, link_selector) click to toggle source
# File lib/filegrabber/grab.rb, line 44
def index url, link_selector
  @docpages = IndexPage.new(url, 'index.html')
    .links(link_selector)
    .map { |link| DocumentPage.new(link) }
end
set_http_basic_password(value) click to toggle source
# File lib/filegrabber/grab.rb, line 40
def set_http_basic_password value
  HTTP_BASIC_AUTH[:password] = value
end
set_http_basic_username(value) click to toggle source
# File lib/filegrabber/grab.rb, line 36
def set_http_basic_username value
  HTTP_BASIC_AUTH[:username] = value
end