class PageDownloader::Filters::EmbedScript

Attributes

fetcher[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/page_downloader/filters/embed_script.rb, line 6
def initialize(options = {})
  @fetcher = options.fetch :fetcher
  @url_resolver = options.fetch :url_resolver
end

Public Instance Methods

filter(content) click to toggle source
# File lib/page_downloader/filters/embed_script.rb, line 11
def filter(content)
  content.css("script").select do |script|
    script.attributes["src"]
  end.each do |script|
    embed(script)
  end

  content
end

Private Instance Methods

embed(script) click to toggle source
# File lib/page_downloader/filters/embed_script.rb, line 23
def embed(script)
  html = fetch_content(script.attributes["src"].value)
  script.remove_attribute("src")
  script.add_child(html)
end
fetch_content(url) click to toggle source
# File lib/page_downloader/filters/embed_script.rb, line 29
def fetch_content(url)
  fetcher.fetch(@url_resolver.resolve(url))
end