class Hiroiyomi::Html::DOMParser

DOMParser

Private Instance Methods

do_filter(document, filter:, is_deep: true) click to toggle source
# File lib/hiroiyomi/html/dom_parser.rb, line 18
def do_filter(document, filter:, is_deep: true)
  filtered_elements = filter_element(document, filter, [])
  return filtered_elements unless is_deep

  filtered_elements.map { |e| e.deep_select(filter) }.flatten
end
do_parse(file) click to toggle source
# File lib/hiroiyomi/html/dom_parser.rb, line 14
def do_parse(file)
  Document.value_of(file)
end
filter_element(element, filter, filtered_elements) click to toggle source
# File lib/hiroiyomi/html/dom_parser.rb, line 25
def filter_element(element, filter, filtered_elements)
  element.each do |child|
    next if child.text?
    if filter&.include?(child.name.downcase)
      filtered_elements.push(child)
    else
      filter_element(child, filter, filtered_elements)
    end
  end
  filtered_elements
end