class Watir::Generator::SVG::SpecExtractor
Private Instance Methods
build_result()
click to toggle source
# File lib/watir/generator/svg/spec_extractor.rb, line 14 def build_result {}.tap do |result| @interface_map.each do |tag, interface| result[tag] = fetch_interface(interface) end end end
external_interface?(id)
click to toggle source
Some interfaces are actually defined in different specs (for example, clipPath), so we ignore them for now.
# File lib/watir/generator/svg/spec_extractor.rb, line 47 def external_interface?(id) id !~ /^#.+/ end
extract_interface_map()
click to toggle source
# File lib/watir/generator/svg/spec_extractor.rb, line 7 def extract_interface_map list = @doc.search("//div[@id='chapter-eltindex']//ul/li") list.any? || raise('could not find elements list') @interface_map = parse_list(list) end
issued_interfaces()
click to toggle source
# File lib/watir/generator/svg/spec_extractor.rb, line 41 def issued_interfaces [] end
parse_list(list)
click to toggle source
# File lib/watir/generator/svg/spec_extractor.rb, line 22 def parse_list(list) {}.tap do |result| list.each do |node| tag_name = node.css('a span').inner_text.strip id = node.css('a').attr('href').to_s next if external_interface?(id) interface_css = 'div.element-summary a.idlinterface' interface_definitions = @doc.css("#{id} #{interface_css}, #{id} ~ #{interface_css}") # TSpan is defined along with Text so the first IDL definition is SVGTextElement idx = tag_name == 'tspan' ? 1 : 0 result[tag_name] = interface_definitions[idx].inner_text.strip end end end