class Watir::Generator::HTML::SpecExtractor

Private Instance Methods

build_result() click to toggle source
# File lib/watir/generator/html/spec_extractor.rb, line 19
def build_result
  {}.tap do |result|
    @interface_map.each do |tag, interface|
      result[tag] = fetch_interface(interface)
    end

    # missing from the elements-1 table
    result['frameset'] = fetch_interface('HTMLFrameSetElement')
  end
end
extract_interface_map() click to toggle source
# File lib/watir/generator/html/spec_extractor.rb, line 7
def extract_interface_map
  # http://www.whatwg.org/specs/web-apps/current-work/#elements-1
  table = @doc.search("//h3[@id='index-elements']/following-sibling::table[1]").first
  table || raise('could not find index-elements table')

  @interface_map = {}

  parse_table(table).each do |row|
    row['Element'].split(', ').each { |tag| @interface_map[tag] = row['Interface'] }
  end
end
issued_interfaces() click to toggle source
# File lib/watir/generator/html/spec_extractor.rb, line 44
def issued_interfaces
  []
end
parse_table(table) click to toggle source
# File lib/watir/generator/html/spec_extractor.rb, line 30
def parse_table(table)
  headers = table.css('thead th').map { |e| e.inner_text.strip }

  table.css('tbody tr').map do |row|
    result = {}

    row.css('th, td').each_with_index do |node, idx|
      result[headers[idx]] = node.inner_text.strip
    end

    result
  end
end