class Fontist::Import::SilImport

Constants

ROOT

Public Instance Methods

call() click to toggle source
# File lib/fontist/import/sil_import.rb, line 9
def call
  links = font_links
  Fontist.ui.success("Found #{links.size} links.")

  paths = []
  links.each do |link|
    path = create_formula_by_page_link(link)
    paths << path if path
  end

  Fontist::Index.rebuild

  Fontist.ui.success("Created #{paths.size} formulas.")
end

Private Instance Methods

create_formula_by_archive_url(url) click to toggle source
# File lib/fontist/import/sil_import.rb, line 39
def create_formula_by_archive_url(url)
  path = Fontist::Import::CreateFormula.new(url, formula_dir: formula_dir).call
  Fontist.ui.success("Formula has been successfully created: #{path}")

  path
end
find_archive_url_by_page_uri(uri) click to toggle source
# File lib/fontist/import/sil_import.rb, line 61
def find_archive_url_by_page_uri(uri)
  response = uri.open
  current_url = response.base_uri
  html = response.read
  document = Nokogiri::HTML.parse(html)
  link = find_archive_link(document)
  return URI.join(current_url, link[:href]) if link

  page_link = find_download_page(document)
  return unless page_link

  page_uri = URI.join(current_url, page_link[:href])
  find_archive_url_by_page_uri(page_uri)
end
find_download_page(document) click to toggle source
# File lib/fontist/import/sil_import.rb, line 86
def find_download_page(document)
  links = document.css("a.btn-download")
  page_links = links.select { |tag| tag.content == "DOWNLOADS" }
  page_links.first
end
formula_dir() click to toggle source
# File lib/fontist/import/sil_import.rb, line 92
def formula_dir
  @formula_dir ||= Fontist.formulas_path.join("sil").tap do |path|
    FileUtils.mkdir_p(path) unless File.exist?(path)
  end
end