class PageDownloader

Constants

VERSION

Attributes

fetcher[R]
filters[R]
page[R]

Public Class Methods

new(page, options = {}) click to toggle source
# File lib/page_downloader.rb, line 13
def initialize(page, options = {})
  @page = page
  @fetcher = options.fetch(:fetcher, RemoteContentFetcher.new)
  @filters = options[:filters]

  unless @filters
    resolver = UrlResolver.new(referer: page)
    options =  { fetcher: fetcher, url_resolver: resolver }

    @filters ||= Filters.new [
      Filters::ToDocumentObject.new,
      Filters::EmbedScript.new(options),
      Filters::EmbedStyle.new(options),
      Filters::DocumentObjectToString.new,
    ]
  end
end

Public Instance Methods

to_file(destination) click to toggle source
# File lib/page_downloader.rb, line 31
def to_file(destination)
  content = filters.filter(fetcher.fetch(page))

  File.open(destination, "w") do |f|
    f.puts(content)
  end
end