watir-webdriver 0.0.1.dev5 → 0.0.1.dev6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. data/Rakefile +13 -19
  2. data/VERSION +1 -1
  3. data/lib/watir-webdriver.rb +3 -1
  4. data/lib/watir-webdriver/base_element.rb +33 -27
  5. data/lib/watir-webdriver/browser.rb +2 -6
  6. data/lib/watir-webdriver/elements/font.rb +12 -0
  7. data/lib/watir-webdriver/elements/generated.rb +1027 -622
  8. data/lib/watir-webdriver/elements/select_list.rb +3 -3
  9. data/lib/watir-webdriver/locators/element_locator.rb +2 -2
  10. data/lib/watir-webdriver/xpath_support.rb +2 -2
  11. data/support/html5/html5.idl +942 -483
  12. data/support/html5/old/html5.idl +962 -0
  13. data/support/html5/{html5_extras.idl → old/html5_extras.idl} +0 -2
  14. data/support/html5/watir_visitor.rb +23 -19
  15. metadata +74 -100
  16. data/spec/watirspec/area_spec.rb +0 -78
  17. data/spec/watirspec/areas_spec.rb +0 -31
  18. data/spec/watirspec/browser_spec.rb +0 -274
  19. data/spec/watirspec/button_spec.rb +0 -242
  20. data/spec/watirspec/buttons_spec.rb +0 -48
  21. data/spec/watirspec/checkbox_spec.rb +0 -272
  22. data/spec/watirspec/checkboxes_spec.rb +0 -32
  23. data/spec/watirspec/dd_spec.rb +0 -123
  24. data/spec/watirspec/dds_spec.rb +0 -31
  25. data/spec/watirspec/div_spec.rb +0 -211
  26. data/spec/watirspec/divs_spec.rb +0 -31
  27. data/spec/watirspec/dl_spec.rb +0 -123
  28. data/spec/watirspec/dls_spec.rb +0 -32
  29. data/spec/watirspec/dt_spec.rb +0 -123
  30. data/spec/watirspec/dts_spec.rb +0 -31
  31. data/spec/watirspec/element_spec.rb +0 -89
  32. data/spec/watirspec/em_spec.rb +0 -97
  33. data/spec/watirspec/ems_spec.rb +0 -32
  34. data/spec/watirspec/filefield_spec.rb +0 -119
  35. data/spec/watirspec/filefields_spec.rb +0 -32
  36. data/spec/watirspec/form_spec.rb +0 -63
  37. data/spec/watirspec/forms_spec.rb +0 -33
  38. data/spec/watirspec/frame_spec.rb +0 -129
  39. data/spec/watirspec/frames_spec.rb +0 -62
  40. data/spec/watirspec/hidden_spec.rb +0 -102
  41. data/spec/watirspec/hiddens_spec.rb +0 -32
  42. data/spec/watirspec/hn_spec.rb +0 -93
  43. data/spec/watirspec/hns_spec.rb +0 -38
  44. data/spec/watirspec/image_spec.rb +0 -207
  45. data/spec/watirspec/images_spec.rb +0 -31
  46. data/spec/watirspec/label_spec.rb +0 -75
  47. data/spec/watirspec/labels_spec.rb +0 -31
  48. data/spec/watirspec/li_spec.rb +0 -112
  49. data/spec/watirspec/lib/guards.rb +0 -59
  50. data/spec/watirspec/lib/server.rb +0 -127
  51. data/spec/watirspec/lib/spec_helper.rb +0 -79
  52. data/spec/watirspec/lib/watirspec.rb +0 -72
  53. data/spec/watirspec/link_spec.rb +0 -168
  54. data/spec/watirspec/links_spec.rb +0 -35
  55. data/spec/watirspec/lis_spec.rb +0 -31
  56. data/spec/watirspec/map_spec.rb +0 -76
  57. data/spec/watirspec/maps_spec.rb +0 -32
  58. data/spec/watirspec/meta_spec.rb +0 -22
  59. data/spec/watirspec/metas_spec.rb +0 -30
  60. data/spec/watirspec/ol_spec.rb +0 -78
  61. data/spec/watirspec/ols_spec.rb +0 -31
  62. data/spec/watirspec/option_spec.rb +0 -173
  63. data/spec/watirspec/p_spec.rb +0 -128
  64. data/spec/watirspec/pre_spec.rb +0 -112
  65. data/spec/watirspec/pres_spec.rb +0 -31
  66. data/spec/watirspec/ps_spec.rb +0 -31
  67. data/spec/watirspec/radio_spec.rb +0 -255
  68. data/spec/watirspec/radios_spec.rb +0 -32
  69. data/spec/watirspec/select_list_spec.rb +0 -318
  70. data/spec/watirspec/select_lists_spec.rb +0 -35
  71. data/spec/watirspec/span_spec.rb +0 -142
  72. data/spec/watirspec/spans_spec.rb +0 -31
  73. data/spec/watirspec/spec_helper.rb +0 -17
  74. data/spec/watirspec/strong_spec.rb +0 -89
  75. data/spec/watirspec/strongs_spec.rb +0 -32
  76. data/spec/watirspec/table_bodies_spec.rb +0 -45
  77. data/spec/watirspec/table_body_spec.rb +0 -98
  78. data/spec/watirspec/table_cell_spec.rb +0 -68
  79. data/spec/watirspec/table_cells_spec.rb +0 -47
  80. data/spec/watirspec/table_footer_spec.rb +0 -85
  81. data/spec/watirspec/table_footers_spec.rb +0 -47
  82. data/spec/watirspec/table_header_spec.rb +0 -85
  83. data/spec/watirspec/table_headers_spec.rb +0 -45
  84. data/spec/watirspec/table_row_spec.rb +0 -87
  85. data/spec/watirspec/table_rows_spec.rb +0 -50
  86. data/spec/watirspec/table_spec.rb +0 -160
  87. data/spec/watirspec/tables_spec.rb +0 -33
  88. data/spec/watirspec/text_field_spec.rb +0 -276
  89. data/spec/watirspec/text_fields_spec.rb +0 -35
  90. data/spec/watirspec/ul_spec.rb +0 -76
  91. data/spec/watirspec/uls_spec.rb +0 -33
  92. data/support/html5/idl_extractor.rb +0 -73
data/Rakefile CHANGED
@@ -11,11 +11,13 @@ begin
11
11
  gem.homepage = "http://github.com/jarib/watir-webdriver"
12
12
  gem.authors = ["Jari Bakken"]
13
13
 
14
- gem.add_dependency "selenium-webdriver"
14
+ gem.add_dependency "selenium-webdriver", '>= 0.0.18'
15
15
 
16
16
  gem.add_development_dependency "rspec"
17
17
  gem.add_development_dependency "webidl"
18
- gem.add_development_dependency "sinatra"
18
+ gem.add_development_dependency "sinatra", ">= 1.0"
19
+ gem.add_development_dependency "sinatra", ">= 1.0"
20
+ gem.add_development_dependency "activesupport", ">= 2.3.5" # for pluralization during code generation
19
21
  end
20
22
  Jeweler::GemcutterTasks.new
21
23
  rescue LoadError
@@ -39,32 +41,22 @@ task :spec => :check_dependencies
39
41
 
40
42
  namespace :html5 do
41
43
  IDL_PATH = "support/html5/html5.idl"
42
- EXTRAS_PATH = "support/html5/html5_extras.idl"
43
44
  SPEC_URI = "http://dev.w3.org/html5/spec/Overview.html" # TODO: use http://www.whatwg.org/specs/web-apps/current-work/source
44
45
 
46
+ desc "Print IDL parts from #{SPEC_URI}"
45
47
  task :extract do
46
- require 'support/html5/idl_extractor'
47
-
48
- idl = IdlExtractor.new(SPEC_URI)
49
- idl.write_idl_to IDL_PATH
50
- idl.write_extras_to "#{EXTRAS_PATH}.txt"
51
-
52
- puts "\n\n"
53
- puts "Some HTML elements does not have an interface declaration defined in the spec."
54
- puts "You will need to create the IDL by hand and remove the .txt extension from #{EXTRAS_PATH}.txt before running the html5:generate task."
55
- puts "We're also adding an extended attribute to specify TagName - you may need to look through #{IDL_PATH} to make sure the syntax is correct."
48
+ require "nokogiri"
49
+ require "open-uri"
50
+ doc = Nokogiri.HTML(open(SPEC_URI))
51
+ puts doc.search("//pre[@class='idl']").map { |e| e.inner_text }.join("\n\n")
56
52
  end
57
53
 
58
54
  desc 'Re-enerate the base Watir element classes from the spec '
59
55
  task :generate do
60
56
  require "support/html5/watir_visitor"
61
- raise Errno::ENOENT, EXTRAS_PATH unless File.exist?(EXTRAS_PATH)
62
57
 
63
58
  code = WatirVisitor.generate_from(IDL_PATH)
64
- code << "# from extras: \n\n"
65
- code << WatirVisitor.generate_from(EXTRAS_PATH)
66
-
67
- old_file = "lib/watir/elements/generated.rb"
59
+ old_file = "lib/watir-webdriver/elements/generated.rb"
68
60
 
69
61
  File.open("#{old_file}.new", "w") { |file| file << code }
70
62
  if File.exist?(old_file)
@@ -98,7 +90,9 @@ task :default => :spec
98
90
  begin
99
91
  require 'yard'
100
92
  require 'support/yard_handlers'
101
- YARD::Rake::YardocTask.new
93
+ YARD::Rake::YardocTask.new do |task|
94
+ task.options = %w[--debug] # this is pretty slow, so nice with some output
95
+ end
102
96
  rescue LoadError
103
97
  task :yard do
104
98
  abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1.dev5
1
+ 0.0.1.dev6
@@ -21,7 +21,7 @@ module Watir
21
21
  end
22
22
 
23
23
  def element_class_for(tag_name)
24
- tag_to_class[tag_name] || raise(Exception::Error, "no class found for #{tag_name.inspect}")
24
+ tag_to_class[tag_name] || HTMLElement
25
25
  end
26
26
  end
27
27
 
@@ -35,6 +35,7 @@ require "watir-webdriver/elements/button"
35
35
  require "watir-webdriver/collections/buttons_collection"
36
36
  require "watir-webdriver/elements/checkbox"
37
37
  require "watir-webdriver/elements/file_field"
38
+ require "watir-webdriver/elements/font"
38
39
  require "watir-webdriver/elements/headings"
39
40
  require "watir-webdriver/elements/image"
40
41
  require "watir-webdriver/elements/link"
@@ -71,3 +72,4 @@ end # Watir
71
72
  # undefine deprecated methods to use them for Element attributes
72
73
  Object.send :undef_method, :id if Object.method_defined? "id"
73
74
  Object.send :undef_method, :type if Object.method_defined? "type"
75
+
@@ -6,11 +6,22 @@ module Watir
6
6
  include Container
7
7
  include Selenium
8
8
 
9
+ IGNORED_ATTRIBUTES = [:text, :hash]
10
+
9
11
  class << self
10
12
  attr_writer :default_selector
11
13
 
12
- def inherited(klass)
13
- klass.default_selector = default_selector.dup
14
+ def typed_attributes
15
+ @typed_attributes ||= Hash.new { |hash, type| hash[type] = [] }
16
+ end
17
+
18
+ def attribute_list
19
+ @attribute_list ||= (
20
+ list = typed_attributes.values.flatten
21
+ list += ancestors[1..-1].map do |e|
22
+ e.attribute_list if e.respond_to?(:attribute_list)
23
+ end.compact.flatten
24
+ ).uniq
14
25
  end
15
26
 
16
27
  def attributes(attribute_map = nil)
@@ -21,10 +32,24 @@ module Watir
21
32
  add_attributes attribute_map
22
33
 
23
34
  attribute_map.each do |type, attribs|
24
- attribs.each { |name| define_attribute(type, name) }
35
+ attribs.each do |name|
36
+ # we don't want to override methods like :text or :hash
37
+ next if IGNORED_ATTRIBUTES.include?(name)
38
+ define_attribute(type, name)
39
+ end
25
40
  end
26
41
  end
27
42
 
43
+ def default_selector
44
+ @default_selector ||= {}
45
+ end
46
+
47
+ private
48
+
49
+ def inherited(klass)
50
+ klass.default_selector = default_selector.dup
51
+ end
52
+
28
53
  def define_attribute(type, name)
29
54
  method_name = method_name_for(type, name)
30
55
  attribute_name = attribute_for_method(name)
@@ -72,9 +97,12 @@ module Watir
72
97
  end
73
98
 
74
99
  def collection_method(name)
100
+ constant_name = "#{name.to_s.camel_case}Collection"
101
+ return if Watir.const_defined?(constant_name)
102
+
75
103
  element_class = self
76
104
  klass = Watir.const_set(
77
- "#{name.to_s.camel_case}Collection",
105
+ constant_name,
78
106
  Class.new(ElementCollection)
79
107
  )
80
108
 
@@ -89,33 +117,14 @@ module Watir
89
117
  end
90
118
  end
91
119
 
92
- def typed_attributes
93
- @typed_attributes ||= Hash.new { |hash, type| hash[type] = [] }
94
- end
95
-
96
120
  def identifier(selector)
97
121
  Watir.tag_to_class[selector[:tag_name]] = self
98
122
  default_selector.merge! selector
99
123
  end
100
124
 
101
- def default_selector
102
- @default_selector ||= {}
103
- end
104
-
105
- def attribute_list
106
- @attribute_list ||= begin
107
- list = typed_attributes.values.flatten
108
- list += ancestors[1..-1].map do |e|
109
- e.attribute_list if e.respond_to?(:attribute_list)
110
- end.compact.flatten
111
- end
112
- end
113
-
114
125
  def method_name_for(type, attribute)
115
126
  # TODO: rethink this - this list could get pretty long...
116
127
  name = case attribute
117
- when :hash
118
- 'hash_attribute'
119
128
  when :html_for
120
129
  'for'
121
130
  when :col_span
@@ -135,8 +144,6 @@ module Watir
135
144
  case method.to_sym
136
145
  when :class_name
137
146
  'class'
138
- when :hash_attribute
139
- 'hash'
140
147
  when :html_for
141
148
  'for'
142
149
  when :read_only
@@ -326,8 +333,7 @@ module Watir
326
333
 
327
334
  def rescue_no_match(returned = "", &blk)
328
335
  yield
329
- rescue WebDriver::Error::WebDriverError => e # webdriver needs a MissingAttributeError or similar
330
- raise unless e.message == "No match"
336
+ rescue WebDriver::Error::ElementNotEnabledError
331
337
  returned
332
338
  end
333
339
 
@@ -18,7 +18,7 @@ module Watir
18
18
  #
19
19
  # Create a Watir::Browser instance
20
20
  #
21
- # @param [:firefox, :ie, :chrome, :remote] browser
21
+ # @param [:firefox, :ie, :chrome, :remote, Selenium::WebDriver] browser
22
22
  # @param args Passed to the underlying driver
23
23
  #
24
24
 
@@ -29,7 +29,7 @@ module Watir
29
29
  when Selenium::WebDriver::Driver
30
30
  @driver = browser
31
31
  else
32
- raise ArugmentError, "expected Symbol or Selenium::WebDriver::Driver, got #{browser.class}"
32
+ raise ArgumentError, "expected Symbol or Selenium::WebDriver::Driver, got #{browser.class}"
33
33
  end
34
34
 
35
35
  @error_checkers = []
@@ -71,10 +71,6 @@ module Watir
71
71
  @driver.title
72
72
  end
73
73
 
74
- def quit
75
- @driver.quit
76
- end
77
-
78
74
  def close
79
75
  @driver.quit
80
76
  end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+
3
+ module Watir
4
+ class Font < HTMLElement
5
+ identifier :tag_name => 'font'
6
+ container_method :font
7
+ collection_method :fonts
8
+
9
+ attributes :string => [:color, :face], :int => [:size]
10
+ end
11
+ end
12
+
@@ -1,941 +1,1346 @@
1
1
  # Autogenerated from the HTML5 specification. Edits may be lost.
2
2
  module Watir
3
3
  class HTMLElement < BaseElement
4
- attributes(:string_map => ([:dataset]), :string => ([:innerhtml, :outerhtml, :id, :title, :lang, :dir, :class_name, :item_type, :item_id, :item_ref, :item_value, :access_key, :access_key_label, :content_editable, :spellcheck, :command_type, :label, :icon]), :properties_collection => ([:properties]), :int => ([:tab_index]), :html_element => ([:context_menu]), :function => ([:onabort, :onblur, :oncanplay, :oncanplaythrough, :onchange, :onclick, :oncontextmenu, :ondblclick, :ondrag, :ondragend, :ondragenter, :ondragleave, :ondragover, :ondragstart, :ondrop, :ondurationchange, :onemptied, :onended, :onerror, :onfocus, :onformchange, :onforminput, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreadystatechange, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting]), :style => ([:style]), :bool => ([:item_scope, :hidden, :draggable, :is_content_editable, :disabled, :checked]), :token_list => ([:class_list, :item_prop]))
4
+ attributes(:token_list => ([:class_list]), :string => ([:innerhtml, :outerhtml, :id, :title, :lang, :dir, :class_name, :access_key, :access_key_label, :content_editable, :spellcheck, :command_type, :label, :icon]), :string_map => ([:dataset]), :style => ([:style]), :html_element => ([:context_menu]), :bool => ([:hidden, :draggable, :is_content_editable, :disabled, :checked]), :function => ([:onabort, :onblur, :oncanplay, :oncanplaythrough, :onchange, :onclick, :oncontextmenu, :ondblclick, :ondrag, :ondragend, :ondragenter, :ondragleave, :ondragover, :ondragstart, :ondrop, :ondurationchange, :onemptied, :onended, :onerror, :onfocus, :onformchange, :onforminput, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreadystatechange, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting]), :int => ([:tab_index]))
5
5
  end
6
-
7
- class TableCell < HTMLElement
8
- attributes(:string => ([:headers]), :int => ([:col_span, :row_span, :cell_index]))
6
+
7
+ class Html < HTMLElement
8
+ identifier(:tag_name => "html")
9
+
10
+ container_method(:html)
11
+
12
+ collection_method(:htmls)
13
+
14
+ # do nothing
9
15
  end
10
-
11
- class Mod < HTMLElement
12
- attributes(:string => ([:cite, :date_time]))
16
+
17
+ class Head < HTMLElement
18
+ identifier(:tag_name => "head")
19
+
20
+ container_method(:head)
21
+
22
+ collection_method(:heads)
23
+
24
+ # do nothing
25
+ end
26
+
27
+ class Title < HTMLElement
28
+ identifier(:tag_name => "title")
29
+
30
+ container_method(:title)
31
+
32
+ collection_method(:titles)
33
+
34
+ attributes(:string => ([:text]))
35
+ end
36
+
37
+ class Base < HTMLElement
38
+ identifier(:tag_name => "base")
39
+
40
+ container_method(:base)
41
+
42
+ collection_method(:bases)
43
+
44
+ attributes(:string => ([:href, :target]))
13
45
  end
14
-
46
+
47
+ # class Link < HTMLElement
48
+ # identifier(:tag_name => "link")
49
+ #
50
+ # container_method(:link)
51
+ #
52
+ # collection_method(:links)
53
+ #
54
+ # attributes(:token_list => ([:rel_list, :sizes]), :string => ([:href, :rel, :media, :hreflang, :type]), :bool => ([:disabled]))
55
+ # end
56
+
15
57
  class Meta < HTMLElement
16
58
  identifier(:tag_name => "meta")
17
-
59
+
18
60
  container_method(:meta)
19
-
61
+
20
62
  collection_method(:metas)
21
-
63
+
22
64
  attributes(:string => ([:name, :http_equiv, :content]))
23
65
  end
24
-
25
- class Input < HTMLElement
26
- identifier(:tag_name => "input")
27
-
28
- container_method(:input)
29
-
30
- collection_method(:inputs)
31
-
32
- attributes(:string => ([:accept, :alt, :form_action, :form_enctype, :form_method, :form_target, :height, :max, :min, :name, :pattern, :placeholder, :src, :step, :type, :default_value, :value, :width, :validity, :validation_message]), :int => ([:max_length, :size, :selection_start, :selection_end]), :float => ([:value_as_number]), :date => ([:value_as_date]), :html_element => ([:form, :list, :selected_option]), :list => ([:files, :labels]), :bool => ([:autocomplete, :autofocus, :default_checked, :checked, :disabled, :form_no_validate, :indeterminate, :multiple, :read_only, :required, :will_validate]))
33
- end
34
-
35
- class TableHeaderCell < TableCell
36
- identifier(:tag_name => "th")
37
-
38
- container_method(:th)
39
-
40
- collection_method(:ths)
41
-
42
- attributes(:string => ([:scope]))
66
+
67
+ class Style < HTMLElement
68
+ identifier(:tag_name => "style")
69
+
70
+ container_method(:style)
71
+
72
+ collection_method(:styles)
73
+
74
+ attributes(:string => ([:media, :type]), :bool => ([:disabled, :scoped]))
43
75
  end
44
-
45
- class DataList < HTMLElement
46
- identifier(:tag_name => "datalist")
47
-
48
- container_method(:datalist)
49
-
50
- collection_method(:datalists)
51
-
52
- attributes(:html_collection => ([:options]))
76
+
77
+ class Script < HTMLElement
78
+ identifier(:tag_name => "script")
79
+
80
+ container_method(:script)
81
+
82
+ collection_method(:scripts)
83
+
84
+ attributes(:string => ([:src, :type, :charset, :text]), :bool => ([:async, :defer]))
85
+ end
86
+
87
+ class Body < HTMLElement
88
+ identifier(:tag_name => "body")
89
+
90
+ container_method(:body)
91
+
92
+ collection_method(:bodys)
93
+
94
+ attributes(:function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpopstate, :onpagehide, :onpageshow, :onredo, :onresize, :onstorage, :onundo, :onunload]))
53
95
  end
54
-
55
- # class Object < HTMLElement
56
- # identifier(:tag_name => "object")
57
- #
58
- # container_method(:object)
59
- #
60
- # collection_method(:objects)
61
- #
62
- # attributes(:string => ([:data, :type, :name, :use_map, :width, :height, :content_window, :validity, :validation_message]), :document => ([:content_document]), :html_element => ([:form]), :bool => ([:will_validate]))
63
- # end
64
-
65
- class DList < HTMLElement
66
- identifier(:tag_name => "dl")
67
-
68
- container_method(:dl)
69
-
70
- collection_method(:dls)
71
-
96
+
97
+ class Heading < HTMLElement
98
+ identifier(:tag_name => "h1")
99
+
100
+ container_method(:h1)
101
+
102
+ collection_method(:h1s)
103
+
72
104
  # do nothing
73
105
  end
74
-
75
- class LI < HTMLElement
76
- identifier(:tag_name => "li")
77
-
78
- container_method(:li)
79
-
80
- collection_method(:lis)
81
-
82
- attributes(:int => ([:value]))
106
+
107
+ class Paragraph < HTMLElement
108
+ identifier(:tag_name => "p")
109
+
110
+ container_method(:p)
111
+
112
+ collection_method(:ps)
113
+
114
+ # do nothing
83
115
  end
84
-
116
+
85
117
  class HR < HTMLElement
86
118
  identifier(:tag_name => "hr")
87
-
119
+
88
120
  container_method(:hr)
89
-
121
+
90
122
  collection_method(:hrs)
91
-
123
+
92
124
  # do nothing
93
125
  end
94
-
95
- class Button < HTMLElement
96
- identifier(:tag_name => "button")
97
-
98
- container_method(:button)
99
-
100
- collection_method(:buttons)
101
-
102
- attributes(:string => ([:form_action, :form_enctype, :form_method, :form_no_validate, :form_target, :name, :type, :value, :validity, :validation_message]), :html_element => ([:form]), :list => ([:labels]), :bool => ([:autofocus, :disabled, :will_validate]))
126
+
127
+ class Pre < HTMLElement
128
+ identifier(:tag_name => "pre")
129
+
130
+ container_method(:pre)
131
+
132
+ collection_method(:pres)
133
+
134
+ # do nothing
103
135
  end
104
-
105
- class TableRow < HTMLElement
106
- identifier(:tag_name => "tr")
107
-
108
- container_method(:tr)
109
-
110
- collection_method(:trs)
111
-
112
- attributes(:int => ([:row_index, :section_row_index]), :html_collection => ([:cells]))
136
+
137
+ class Quote < HTMLElement
138
+ identifier(:tag_name => "blockquote")
139
+
140
+ container_method(:blockquote)
141
+
142
+ collection_method(:blockquotes)
143
+
144
+ attributes(:string => ([:cite]))
113
145
  end
114
-
115
- class TableSection < HTMLElement
116
- identifier(:tag_name => "tbody")
117
-
118
- container_method(:tbody)
119
-
120
- collection_method(:tbodys)
121
-
122
- attributes(:html_collection => ([:rows]))
146
+
147
+ class OList < HTMLElement
148
+ identifier(:tag_name => "ol")
149
+
150
+ container_method(:ol)
151
+
152
+ collection_method(:ols)
153
+
154
+ attributes(:bool => ([:reversed]), :int => ([:start]))
123
155
  end
124
-
125
- class Area < HTMLElement
126
- identifier(:tag_name => "area")
127
-
128
- container_method(:area)
129
-
130
- collection_method(:areas)
131
-
132
- attributes(:string => ([:alt, :coords, :shape, :href, :target, :ping, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash]), :token_list => ([:rel_list]))
156
+
157
+ class UList < HTMLElement
158
+ identifier(:tag_name => "ul")
159
+
160
+ container_method(:ul)
161
+
162
+ collection_method(:uls)
163
+
164
+ # do nothing
165
+ end
166
+
167
+ class LI < HTMLElement
168
+ identifier(:tag_name => "li")
169
+
170
+ container_method(:li)
171
+
172
+ collection_method(:lis)
173
+
174
+ attributes(:int => ([:value]))
175
+ end
176
+
177
+ class DList < HTMLElement
178
+ identifier(:tag_name => "dl")
179
+
180
+ container_method(:dl)
181
+
182
+ collection_method(:dls)
183
+
184
+ # do nothing
185
+ end
186
+
187
+ class Div < HTMLElement
188
+ identifier(:tag_name => "div")
189
+
190
+ container_method(:div)
191
+
192
+ collection_method(:divs)
193
+
194
+ # do nothing
133
195
  end
134
-
196
+
135
197
  class Anchor < HTMLElement
136
198
  identifier(:tag_name => "a")
137
-
199
+
138
200
  container_method(:a)
139
-
201
+
140
202
  collection_method(:as)
141
-
142
- attributes(:string => ([:href, :target, :ping, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash]), :token_list => ([:rel_list]))
203
+
204
+ attributes(:token_list => ([:rel_list]), :string => ([:href, :target, :rel, :media, :hreflang, :type, :text, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
143
205
  end
144
-
145
- class Pre < HTMLElement
146
- identifier(:tag_name => "pre")
147
-
148
- container_method(:pre)
149
-
150
- collection_method(:pres)
151
-
206
+
207
+ class Time < HTMLElement
208
+ identifier(:tag_name => "time")
209
+
210
+ container_method(:time)
211
+
212
+ collection_method(:times)
213
+
214
+ attributes(:string => ([:date_time]), :date => ([:value_as_date]), :bool => ([:pub_date]))
215
+ end
216
+
217
+ class Span < HTMLElement
218
+ identifier(:tag_name => "span")
219
+
220
+ container_method(:span)
221
+
222
+ collection_method(:spans)
223
+
152
224
  # do nothing
153
225
  end
154
-
155
- class Details < HTMLElement
156
- identifier(:tag_name => "details")
157
-
158
- container_method(:details)
159
-
160
- collection_method(:details)
161
-
162
- attributes(:bool => ([:open]))
226
+
227
+ class BR < HTMLElement
228
+ identifier(:tag_name => "br")
229
+
230
+ container_method(:br)
231
+
232
+ collection_method(:brs)
233
+
234
+ # do nothing
163
235
  end
164
-
165
- class OptGroup < HTMLElement
166
- identifier(:tag_name => "optgroup")
167
-
168
- container_method(:optgroup)
169
-
170
- collection_method(:optgroups)
171
-
172
- attributes(:string => ([:label]), :bool => ([:disabled]))
236
+
237
+ class Mod < HTMLElement
238
+ attributes(:string => ([:cite, :date_time]))
173
239
  end
174
-
175
- class TableCol < HTMLElement
176
- identifier(:tag_name => "colgroup")
177
-
178
- container_method(:colgroup)
179
-
180
- collection_method(:colgroups)
181
-
182
- attributes(:int => ([:span]))
240
+
241
+ class Image < HTMLElement
242
+ identifier(:tag_name => "img")
243
+
244
+ container_method(:image)
245
+
246
+ collection_method(:images)
247
+
248
+ attributes(:string => ([:alt, :src, :use_map]), :bool => ([:is_map, :complete]), :int => ([:width, :height, :natural_width, :natural_height]))
183
249
  end
184
-
250
+
251
+ class IFrame < HTMLElement
252
+ identifier(:tag_name => "iframe")
253
+
254
+ container_method(:iframe)
255
+
256
+ collection_method(:iframes)
257
+
258
+ attributes(:token_list => ([:sandbox]), :string => ([:src, :srcdoc, :name, :width, :height, :content_window]), :document => ([:content_document]), :bool => ([:seamless]))
259
+ end
260
+
185
261
  class Embed < HTMLElement
186
262
  identifier(:tag_name => "embed")
187
-
263
+
188
264
  container_method(:embed)
189
-
265
+
190
266
  collection_method(:embeds)
191
-
267
+
192
268
  attributes(:string => ([:src, :type, :width, :height]))
193
269
  end
194
-
195
- # class Link < HTMLElement
196
- # identifier(:tag_name => "link")
197
- #
198
- # container_method(:link)
199
- #
200
- # collection_method(:links)
201
- #
202
- # attributes(:string => ([:href, :rel, :media, :hreflang, :type, :sizes]), :bool => ([:disabled]), :token_list => ([:rel_list]))
203
- # end
204
-
205
-
206
-
207
- class Html < HTMLElement
208
- identifier(:tag_name => "html")
209
-
210
- container_method(:html)
211
-
212
- collection_method(:htmls)
213
-
214
- # do nothing
215
- end
216
-
217
- class Option < HTMLElement
218
- identifier(:tag_name => "option")
219
-
220
- container_method(:option)
221
-
222
- collection_method(:options)
223
-
224
- attributes(:string => ([:label, :value, :text]), :int => ([:index]), :html_element => ([:form]), :bool => ([:disabled, :default_selected, :selected]))
225
- end
226
-
227
- class Legend < HTMLElement
228
- identifier(:tag_name => "legend")
229
-
230
- container_method(:legend)
231
-
232
- collection_method(:legends)
233
-
234
- attributes(:html_element => ([:form]))
235
- end
236
-
237
- class Form < HTMLElement
238
- identifier(:tag_name => "form")
239
-
240
- container_method(:form)
241
-
242
- collection_method(:forms)
243
-
244
- attributes(:string => ([:accept_charset, :action, :enctype, :method, :name, :target]), :int => ([:length]), :html_collection => ([:elements]), :bool => ([:autocomplete, :no_validate]))
245
- end
246
-
270
+
271
+ class Object < HTMLElement
272
+ identifier(:tag_name => "object")
273
+
274
+ container_method(:object)
275
+
276
+ collection_method(:objects)
277
+
278
+ attributes(:string => ([:data, :type, :name, :use_map, :width, :height, :content_window, :validity, :validation_message]), :html_element => ([:form]), :bool => ([:will_validate]), :document => ([:content_document]))
279
+ end
280
+
247
281
  class Param < HTMLElement
248
282
  identifier(:tag_name => "param")
249
-
283
+
250
284
  container_method(:param)
251
-
285
+
252
286
  collection_method(:params)
253
-
287
+
254
288
  attributes(:string => ([:name, :value]))
255
289
  end
256
-
257
- class IFrame < HTMLElement
258
- identifier(:tag_name => "iframe")
259
-
260
- container_method(:iframe)
261
-
262
- collection_method(:iframes)
263
-
264
- attributes(:string => ([:src, :name, :sandbox, :width, :height, :content_window]), :document => ([:content_document]), :bool => ([:seamless]))
265
- end
266
-
267
- class Image < HTMLElement
268
- identifier(:tag_name => "img")
269
-
270
- container_method(:image)
271
-
272
- collection_method(:images)
273
-
274
- attributes(:string => ([:alt, :src, :use_map]), :int => ([:width, :height, :natural_width, :natural_height]), :bool => ([:is_map, :complete]))
290
+
291
+ class Media < HTMLElement
292
+ attributes(:string => ([:error, :src, :current_src, :preload, :buffered, :played, :seekable]), :float => ([:current_time, :start_time, :duration, :default_playback_rate, :playback_rate, :volume]), :bool => ([:seeking, :paused, :ended, :autoplay, :loop, :controls, :muted]), :int => ([:network_state, :ready_state]))
293
+ end
294
+
295
+ class Video < Media
296
+ identifier(:tag_name => "video")
297
+
298
+ container_method(:video)
299
+
300
+ collection_method(:videos)
301
+
302
+ attributes(:string => ([:width, :height, :poster]), :int => ([:video_width, :video_height]))
303
+ end
304
+
305
+ class Audio < Media
306
+ identifier(:tag_name => "audio")
307
+
308
+ container_method(:audio)
309
+
310
+ collection_method(:audios)
311
+
312
+ # do nothing
275
313
  end
276
-
277
- class Progress < HTMLElement
278
- identifier(:tag_name => "progress")
279
-
280
- container_method(:progress)
281
-
282
- collection_method(:progress)
283
-
284
- attributes(:float => ([:value, :max, :position]))
314
+
315
+ class Source < HTMLElement
316
+ identifier(:tag_name => "source")
317
+
318
+ container_method(:source)
319
+
320
+ collection_method(:sources)
321
+
322
+ attributes(:string => ([:src, :type, :media]))
285
323
  end
286
-
287
- class Time < HTMLElement
288
- identifier(:tag_name => "time")
289
-
290
- container_method(:time)
291
-
292
- collection_method(:times)
293
-
294
- attributes(:string => ([:date_time]), :date => ([:value_as_date]), :bool => ([:pub_date]))
324
+
325
+ class Canvas < HTMLElement
326
+ identifier(:tag_name => "canvas")
327
+
328
+ container_method(:canvas)
329
+
330
+ collection_method(:canvases)
331
+
332
+ attributes(:int => ([:width, :height]))
295
333
  end
296
-
297
- class UList < HTMLElement
298
- identifier(:tag_name => "ul")
299
-
300
- container_method(:ul)
301
-
302
- collection_method(:uls)
303
-
304
- # do nothing
334
+
335
+ class Map < HTMLElement
336
+ identifier(:tag_name => "map")
337
+
338
+ container_method(:map)
339
+
340
+ collection_method(:maps)
341
+
342
+ attributes(:string => ([:name]), :html_collection => ([:areas, :images]))
305
343
  end
306
-
307
- class Quote < HTMLElement
308
- identifier(:tag_name => "blockquote")
309
-
310
- container_method(:blockquote)
311
-
312
- collection_method(:blockquotes)
313
-
314
- attributes(:string => ([:cite]))
344
+
345
+ class Area < HTMLElement
346
+ attributes(:token_list => ([:rel_list]), :string => ([:alt, :coords, :shape, :href, :target, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
315
347
  end
316
-
317
- class Style < HTMLElement
318
- identifier(:tag_name => "style")
319
-
320
- container_method(:style)
321
-
322
- collection_method(:styles)
323
-
324
- attributes(:string => ([:media, :type]), :bool => ([:disabled, :scoped]))
348
+
349
+ class Table < HTMLElement
350
+ identifier(:tag_name => "table")
351
+
352
+ container_method(:table)
353
+
354
+ collection_method(:tables)
355
+
356
+ attributes(:string => ([:summary]), :html_element => ([:caption, :t_head, :t_foot]), :html_collection => ([:t_bodies, :rows]))
325
357
  end
326
-
327
-
328
-
329
- class Output < HTMLElement
330
- identifier(:tag_name => "output")
331
-
332
- container_method(:output)
333
-
334
- collection_method(:outputs)
335
-
336
- attributes(:string => ([:html_for, :name, :type, :default_value, :value, :validity, :validation_message]), :html_element => ([:form]), :bool => ([:will_validate]))
337
- end
338
-
358
+
339
359
  class TableCaption < HTMLElement
340
360
  identifier(:tag_name => "caption")
341
-
361
+
342
362
  container_method(:caption)
343
-
363
+
344
364
  collection_method(:captions)
345
-
365
+
346
366
  # do nothing
347
367
  end
348
-
349
- class Table < HTMLElement
350
- identifier(:tag_name => "table")
351
-
352
- container_method(:table)
353
-
354
- collection_method(:tables)
355
-
356
- attributes(:string => ([:summary]), :html_element => ([:caption, :t_head, :t_foot]), :html_collection => ([:t_bodies, :rows]))
368
+
369
+ class TableCol < HTMLElement
370
+ identifier(:tag_name => "colgroup")
371
+
372
+ container_method(:colgroup)
373
+
374
+ collection_method(:colgroups)
375
+
376
+ attributes(:int => ([:span]))
357
377
  end
358
-
359
- class Paragraph < HTMLElement
360
- identifier(:tag_name => "p")
361
-
362
- container_method(:p)
363
-
364
- collection_method(:ps)
365
-
366
- # do nothing
378
+
379
+ class TableSection < HTMLElement
380
+ identifier(:tag_name => "tbody")
381
+
382
+ container_method(:tbody)
383
+
384
+ collection_method(:tbodys)
385
+
386
+ attributes(:html_collection => ([:rows]))
367
387
  end
368
-
369
- class Body < HTMLElement
370
- identifier(:tag_name => "body")
371
-
372
- container_method(:body)
373
-
374
- collection_method(:bodys)
375
-
376
- attributes(:function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpopstate, :onpagehide, :onpageshow, :onredo, :onresize, :onstorage, :onundo, :onunload]))
388
+
389
+ class TableRow < HTMLElement
390
+ identifier(:tag_name => "tr")
391
+
392
+ container_method(:tr)
393
+
394
+ collection_method(:trs)
395
+
396
+ attributes(:html_collection => ([:cells]), :int => ([:row_index, :section_row_index]))
377
397
  end
378
-
379
- class Head < HTMLElement
380
- identifier(:tag_name => "head")
381
-
382
- container_method(:head)
383
-
384
- collection_method(:heads)
385
-
398
+
399
+ class TableCell < HTMLElement
400
+ identifier(:tag_name => "td")
401
+
402
+ container_method(:td)
403
+
404
+ collection_method(:tds)
405
+
406
+ attributes(:string => ([:abbr, :align, :axis, :bg_color, :ch, :ch_off, :height, :v_align, :width]), :bool => ([:no_wrap]))
407
+ end
408
+
409
+ class TableDataCell < TableCell
410
+ identifier(:tag_name => "td")
411
+
412
+ container_method(:td)
413
+
414
+ collection_method(:tds)
415
+
386
416
  # do nothing
387
417
  end
388
-
389
- class Map < HTMLElement
390
- identifier(:tag_name => "map")
391
-
392
- container_method(:map)
393
-
394
- collection_method(:maps)
395
-
396
- attributes(:string => ([:name]), :html_collection => ([:areas, :images]))
418
+
419
+ class TableHeaderCell < TableCell
420
+ identifier(:tag_name => "th")
421
+
422
+ container_method(:th)
423
+
424
+ collection_method(:ths)
425
+
426
+ attributes(:string => ([:scope]))
397
427
  end
398
-
399
- class Div < HTMLElement
400
- identifier(:tag_name => "div")
401
-
402
- container_method(:div)
403
-
404
- collection_method(:divs)
405
-
406
- # do nothing
428
+
429
+ class TableCell < HTMLElement
430
+ attributes(:token_list => ([:headers]), :int => ([:col_span, :row_span, :cell_index]))
431
+ end
432
+
433
+ class Form < HTMLElement
434
+ identifier(:tag_name => "form")
435
+
436
+ container_method(:form)
437
+
438
+ collection_method(:forms)
439
+
440
+ attributes(:string => ([:accept_charset, :action, :autocomplete, :enctype, :method, :name, :target]), :bool => ([:no_validate]), :html_collection => ([:elements]), :int => ([:length]))
441
+ end
442
+
443
+ class FieldSet < HTMLElement
444
+ identifier(:tag_name => "fieldset")
445
+
446
+ container_method(:fieldset)
447
+
448
+ collection_method(:fieldsets)
449
+
450
+ attributes(:string => ([:name, :type, :validity, :validation_message]), :html_element => ([:form]), :bool => ([:disabled, :will_validate]), :html_collection => ([:elements]))
451
+ end
452
+
453
+ class Legend < HTMLElement
454
+ identifier(:tag_name => "legend")
455
+
456
+ container_method(:legend)
457
+
458
+ collection_method(:legends)
459
+
460
+ attributes(:html_element => ([:form]))
407
461
  end
408
-
462
+
463
+ class Label < HTMLElement
464
+ identifier(:tag_name => "label")
465
+
466
+ container_method(:label)
467
+
468
+ collection_method(:labels)
469
+
470
+ attributes(:string => ([:html_for]), :html_element => ([:form, :control]))
471
+ end
472
+
473
+ class Input < HTMLElement
474
+ identifier(:tag_name => "input")
475
+
476
+ container_method(:input)
477
+
478
+ collection_method(:inputs)
479
+
480
+ attributes(:string => ([:accept, :alt, :autocomplete, :form_action, :form_enctype, :form_method, :form_target, :height, :max, :min, :name, :pattern, :placeholder, :src, :step, :type, :default_value, :value, :width, :validity, :validation_message]), :date => ([:value_as_date]), :float => ([:value_as_number]), :list => ([:files, :labels]), :html_element => ([:form, :list, :selected_option]), :bool => ([:autofocus, :default_checked, :checked, :disabled, :form_no_validate, :indeterminate, :multiple, :read_only, :required, :will_validate]), :int => ([:max_length, :size, :selection_start, :selection_end]))
481
+ end
482
+
483
+ class Button < HTMLElement
484
+ identifier(:tag_name => "button")
485
+
486
+ container_method(:button)
487
+
488
+ collection_method(:buttons)
489
+
490
+ attributes(:string => ([:form_action, :form_enctype, :form_method, :form_no_validate, :form_target, :name, :type, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
491
+ end
492
+
493
+ class Select < HTMLElement
494
+ identifier(:tag_name => "select")
495
+
496
+ container_method(:select)
497
+
498
+ collection_method(:selects)
499
+
500
+ attributes(:string => ([:name, :type, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :multiple, :will_validate]), :html_collection => ([:options, :selected_options]), :int => ([:size, :length, :selected_index]))
501
+ end
502
+
503
+ class DataList < HTMLElement
504
+ identifier(:tag_name => "datalist")
505
+
506
+ container_method(:datalist)
507
+
508
+ collection_method(:datalists)
509
+
510
+ attributes(:html_collection => ([:options]))
511
+ end
512
+
513
+ class OptGroup < HTMLElement
514
+ identifier(:tag_name => "optgroup")
515
+
516
+ container_method(:optgroup)
517
+
518
+ collection_method(:optgroups)
519
+
520
+ attributes(:string => ([:label]), :bool => ([:disabled]))
521
+ end
522
+
523
+ class Option < HTMLElement
524
+ identifier(:tag_name => "option")
525
+
526
+ container_method(:option)
527
+
528
+ collection_method(:options)
529
+
530
+ attributes(:string => ([:label, :value, :text]), :html_element => ([:form]), :bool => ([:disabled, :default_selected, :selected]), :int => ([:index]))
531
+ end
532
+
409
533
  class TextArea < HTMLElement
410
534
  identifier(:tag_name => "textarea")
411
-
535
+
412
536
  container_method(:textarea)
413
-
537
+
414
538
  collection_method(:textareas)
415
-
416
- attributes(:string => ([:name, :placeholder, :wrap, :type, :default_value, :value, :validity, :validation_message]), :int => ([:cols, :max_length, :rows, :text_length, :selection_start, :selection_end]), :html_element => ([:form]), :list => ([:labels]), :bool => ([:autofocus, :disabled, :read_only, :required, :will_validate]))
539
+
540
+ attributes(:string => ([:name, :placeholder, :wrap, :type, :default_value, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :read_only, :required, :will_validate]), :int => ([:cols, :max_length, :rows, :text_length, :selection_start, :selection_end]))
417
541
  end
418
-
419
- class TableDataCell < TableCell
420
- identifier(:tag_name => "td")
421
-
422
- container_method(:td)
423
-
424
- collection_method(:tds)
425
-
426
- # do nothing
542
+
543
+ class Keygen < HTMLElement
544
+ identifier(:tag_name => "keygen")
545
+
546
+ container_method(:keygen)
547
+
548
+ collection_method(:keygens)
549
+
550
+ attributes(:string => ([:challenge, :keytype, :name, :type, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
427
551
  end
428
-
429
- class Canvas < HTMLElement
430
- identifier(:tag_name => "canvas")
431
-
432
- container_method(:canvas)
433
-
434
- collection_method(:canvas)
435
-
436
- attributes(:int => ([:width, :height]))
552
+
553
+ class Output < HTMLElement
554
+ identifier(:tag_name => "output")
555
+
556
+ container_method(:output)
557
+
558
+ collection_method(:outputs)
559
+
560
+ attributes(:token_list => ([:html_for]), :string => ([:name, :type, :default_value, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:will_validate]))
561
+ end
562
+
563
+ class Progress < HTMLElement
564
+ identifier(:tag_name => "progress")
565
+
566
+ container_method(:progress)
567
+
568
+ collection_method(:progresses)
569
+
570
+ attributes(:list => ([:labels]), :float => ([:value, :max, :position]), :html_element => ([:form]))
571
+ end
572
+
573
+ class Meter < HTMLElement
574
+ identifier(:tag_name => "meter")
575
+
576
+ container_method(:meter)
577
+
578
+ collection_method(:meters)
579
+
580
+ attributes(:list => ([:labels]), :float => ([:value, :min, :max, :low, :high, :optimum]), :html_element => ([:form]))
581
+ end
582
+
583
+ class Details < HTMLElement
584
+ identifier(:tag_name => "details")
585
+
586
+ container_method(:details)
587
+
588
+ collection_method(:details)
589
+
590
+ attributes(:bool => ([:open]))
591
+ end
592
+
593
+ class Command < HTMLElement
594
+ identifier(:tag_name => "command")
595
+
596
+ container_method(:command)
597
+
598
+ collection_method(:commands)
599
+
600
+ attributes(:string => ([:type, :label, :icon, :radiogroup]), :bool => ([:disabled, :checked]))
601
+ end
602
+
603
+ class Menu < HTMLElement
604
+ identifier(:tag_name => "menu")
605
+
606
+ container_method(:menu)
607
+
608
+ collection_method(:menus)
609
+
610
+ attributes(:string => ([:type, :label]))
611
+ end
612
+
613
+ class Applet < HTMLElement
614
+ identifier(:tag_name => "applet")
615
+
616
+ container_method(:applet)
617
+
618
+ collection_method(:applets)
619
+
620
+ attributes(:string => ([:align, :alt, :archive, :code, :code_base, :height, :name, :object, :width]), :int => ([:hspace, :vspace]))
621
+ end
622
+
623
+ class Marquee < HTMLElement
624
+ identifier(:tag_name => "marquee")
625
+
626
+ container_method(:marquee)
627
+
628
+ collection_method(:marquees)
629
+
630
+ attributes(:string => ([:behavior, :bg_color, :direction, :height, :true_speed, :width]), :function => ([:onbounce, :onfinish, :onstart]), :int => ([:hspace, :loop, :scroll_amount, :scroll_delay, :vspace]))
631
+ end
632
+
633
+ class FrameSet < HTMLElement
634
+ identifier(:tag_name => "farmeset")
635
+
636
+ container_method(:farmeset)
637
+
638
+ collection_method(:farmesets)
639
+
640
+ attributes(:string => ([:cols, :rows]), :function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onredo, :onresize, :onstorage, :onundo, :onunload]))
641
+ end
642
+
643
+ class Frame < HTMLElement
644
+ identifier(:tag_name => "frame")
645
+
646
+ container_method(:frame)
647
+
648
+ collection_method(:frames)
649
+
650
+ attributes(:string => ([:frame_border, :long_desc, :margin_height, :margin_width, :name, :scrolling, :src]), :document => ([:content_document]), :bool => ([:no_resize]))
651
+ end
652
+
653
+ class Anchor < HTMLElement
654
+ identifier(:tag_name => "a")
655
+
656
+ container_method(:a)
657
+
658
+ collection_method(:as)
659
+
660
+ attributes(:string => ([:coords, :charset, :name, :rev, :shape]))
437
661
  end
438
-
662
+
663
+ class Area < HTMLElement
664
+ identifier(:tag_name => "area")
665
+
666
+ container_method(:area)
667
+
668
+ collection_method(:areas)
669
+
670
+ attributes(:bool => ([:no_href]))
671
+ end
672
+
673
+ class BaseFont < HTMLElement
674
+ identifier(:tag_name => "basefont")
675
+
676
+ container_method(:basefont)
677
+
678
+ collection_method(:basefonts)
679
+
680
+ attributes(:string => ([:color, :face]), :int => ([:size]))
681
+ end
682
+
683
+ class Body < HTMLElement
684
+ identifier(:tag_name => "body")
685
+
686
+ container_method(:body)
687
+
688
+ collection_method(:bodys)
689
+
690
+ attributes(:string => ([:text, :bg_color, :background, :link, :v_link, :a_link]))
691
+ end
692
+
439
693
  class BR < HTMLElement
440
694
  identifier(:tag_name => "br")
441
-
695
+
442
696
  container_method(:br)
443
-
697
+
444
698
  collection_method(:brs)
445
-
446
- # do nothing
699
+
700
+ attributes(:string => ([:clear]))
447
701
  end
448
-
449
- class Title < HTMLElement
450
- identifier(:tag_name => "title")
451
-
452
- container_method(:title)
453
-
454
- collection_method(:titles)
455
-
456
- attributes(:string => ([:text]))
702
+
703
+ class TableCaption < HTMLElement
704
+ identifier(:tag_name => "caption")
705
+
706
+ container_method(:caption)
707
+
708
+ collection_method(:captions)
709
+
710
+ attributes(:string => ([:align]))
457
711
  end
458
-
459
- class Meter < HTMLElement
460
- identifier(:tag_name => "meter")
461
-
462
- container_method(:meter)
463
-
464
- collection_method(:meters)
465
-
466
- attributes(:float => ([:value, :min, :max, :low, :high, :optimum]))
712
+
713
+ class TableCol < HTMLElement
714
+ identifier(:tag_name => "col")
715
+
716
+ container_method(:col)
717
+
718
+ collection_method(:cols)
719
+
720
+ attributes(:string => ([:align, :ch, :ch_off, :v_align, :width]))
721
+ end
722
+
723
+ class Directory < HTMLElement
724
+ attributes(:bool => ([:compact]))
725
+ end
726
+
727
+ class Div < HTMLElement
728
+ identifier(:tag_name => "div")
729
+
730
+ container_method(:div)
731
+
732
+ collection_method(:divs)
733
+
734
+ attributes(:string => ([:align]))
735
+ end
736
+
737
+ class DList < HTMLElement
738
+ identifier(:tag_name => "dl")
739
+
740
+ container_method(:dl)
741
+
742
+ collection_method(:dls)
743
+
744
+ attributes(:bool => ([:compact]))
467
745
  end
468
-
746
+
747
+ class Embed < HTMLElement
748
+ identifier(:tag_name => "embed")
749
+
750
+ container_method(:embed)
751
+
752
+ collection_method(:embeds)
753
+
754
+ attributes(:string => ([:align, :name]))
755
+ end
756
+
757
+ class Font < HTMLElement
758
+ identifier(:tag_name => "font")
759
+
760
+ container_method(:font)
761
+
762
+ collection_method(:fonts)
763
+
764
+ attributes(:string => ([:color, :face, :size]))
765
+ end
766
+
469
767
  class Heading < HTMLElement
470
768
  identifier(:tag_name => "h1")
471
-
769
+
472
770
  container_method(:h1)
473
-
771
+
474
772
  collection_method(:h1s)
475
-
476
- # do nothing
773
+
774
+ attributes(:string => ([:align]))
477
775
  end
478
-
479
- class Base < HTMLElement
480
- identifier(:tag_name => "base")
481
-
482
- container_method(:base)
483
-
484
- collection_method(:bases)
485
-
486
- attributes(:string => ([:href, :target]))
487
- end
488
-
489
- class Unknown < HTMLElement
490
- identifier(:tag_name => "unknown")
491
-
492
- container_method(:unknown)
493
-
494
- collection_method(:unknowns)
495
-
496
- # do nothing
776
+
777
+ class HR < HTMLElement
778
+ identifier(:tag_name => "hr")
779
+
780
+ container_method(:hr)
781
+
782
+ collection_method(:hrs)
783
+
784
+ attributes(:string => ([:align, :color, :size, :width]), :bool => ([:no_shade]))
497
785
  end
498
-
499
- class Select < HTMLElement
500
- identifier(:tag_name => "select")
501
-
502
- container_method(:select)
503
-
504
- collection_method(:selects)
505
-
506
- attributes(:string => ([:name, :type, :value, :validity, :validation_message]), :int => ([:size, :length, :selected_index]), :html_element => ([:form]), :list => ([:labels]), :html_collection => ([:options, :selected_options]), :bool => ([:autofocus, :disabled, :multiple, :will_validate]))
786
+
787
+ class Html < HTMLElement
788
+ identifier(:tag_name => "html")
789
+
790
+ container_method(:html)
791
+
792
+ collection_method(:htmls)
793
+
794
+ attributes(:string => ([:version]))
507
795
  end
508
-
509
- class Label < HTMLElement
510
- identifier(:tag_name => "label")
511
-
512
- container_method(:label)
513
-
514
- collection_method(:labels)
515
-
516
- attributes(:string => ([:html_for]), :html_element => ([:form, :control]))
796
+
797
+ class IFrame < HTMLElement
798
+ identifier(:tag_name => "iframe")
799
+
800
+ container_method(:iframe)
801
+
802
+ collection_method(:iframes)
803
+
804
+ attributes(:string => ([:align, :frame_border, :long_desc, :margin_height, :margin_width, :scrolling]))
517
805
  end
518
-
519
- class Keygen < HTMLElement
520
- identifier(:tag_name => "keygen")
521
-
522
- container_method(:keygen)
523
-
524
- collection_method(:keygens)
525
-
526
- attributes(:string => ([:challenge, :keytype, :name, :type, :validity, :validation_message]), :html_element => ([:form]), :list => ([:labels]), :bool => ([:autofocus, :disabled, :will_validate]))
806
+
807
+ class Image < HTMLElement
808
+ identifier(:tag_name => "img")
809
+
810
+ container_method(:image)
811
+
812
+ collection_method(:images)
813
+
814
+ attributes(:string => ([:name, :align, :border, :long_desc]), :int => ([:hspace, :vspace]))
527
815
  end
528
-
529
- class FieldSet < HTMLElement
530
- identifier(:tag_name => "fieldset")
531
-
532
- container_method(:fieldset)
533
-
534
- collection_method(:fieldsets)
535
-
536
- attributes(:string => ([:name, :type, :validity, :validation_message]), :html_element => ([:form]), :html_collection => ([:elements]), :bool => ([:disabled, :will_validate]))
816
+
817
+ class Input < HTMLElement
818
+ identifier(:tag_name => "input")
819
+
820
+ container_method(:input)
821
+
822
+ collection_method(:inputs)
823
+
824
+ attributes(:string => ([:align, :use_map]))
537
825
  end
538
-
539
- class Source < HTMLElement
540
- identifier(:tag_name => "source")
541
-
542
- container_method(:source)
543
-
544
- collection_method(:sources)
545
-
546
- attributes(:string => ([:src, :type, :media]))
826
+
827
+ class Legend < HTMLElement
828
+ identifier(:tag_name => "legend")
829
+
830
+ container_method(:legend)
831
+
832
+ collection_method(:legends)
833
+
834
+ attributes(:string => ([:align]))
547
835
  end
548
-
549
- class Span < HTMLElement
550
- identifier(:tag_name => "span")
551
-
552
- container_method(:span)
553
-
554
- collection_method(:spans)
555
-
556
- # do nothing
836
+
837
+ class LI < HTMLElement
838
+ identifier(:tag_name => "li")
839
+
840
+ container_method(:li)
841
+
842
+ collection_method(:lis)
843
+
844
+ attributes(:string => ([:type]))
557
845
  end
558
-
846
+
847
+ # class Link < HTMLElement
848
+ # identifier(:tag_name => "link")
849
+ #
850
+ # container_method(:link)
851
+ #
852
+ # collection_method(:links)
853
+ #
854
+ # attributes(:string => ([:charset, :rev, :target]))
855
+ # end
856
+
857
+ class Menu < HTMLElement
858
+ identifier(:tag_name => "menu")
859
+
860
+ container_method(:menu)
861
+
862
+ collection_method(:menus)
863
+
864
+ attributes(:bool => ([:compact]))
865
+ end
866
+
867
+ class Meta < HTMLElement
868
+ identifier(:tag_name => "meta")
869
+
870
+ container_method(:meta)
871
+
872
+ collection_method(:metas)
873
+
874
+ attributes(:string => ([:scheme]))
875
+ end
876
+
877
+ class Object < HTMLElement
878
+ identifier(:tag_name => "object")
879
+
880
+ container_method(:object)
881
+
882
+ collection_method(:objects)
883
+
884
+ attributes(:string => ([:align, :archive, :border, :code, :code_base, :code_type, :standby]), :bool => ([:declare]), :int => ([:hspace, :vspace]))
885
+ end
886
+
559
887
  class OList < HTMLElement
560
888
  identifier(:tag_name => "ol")
561
-
889
+
562
890
  container_method(:ol)
563
-
891
+
564
892
  collection_method(:ols)
565
-
566
- attributes(:int => ([:start]), :bool => ([:reversed]))
893
+
894
+ attributes(:string => ([:type]), :bool => ([:compact]))
567
895
  end
568
- end# from extras:
569
-
570
- # Autogenerated from the HTML5 specification. Edits may be lost.
571
- module Watir
896
+
897
+ class Paragraph < HTMLElement
898
+ identifier(:tag_name => "p")
899
+
900
+ container_method(:p)
901
+
902
+ collection_method(:ps)
903
+
904
+ attributes(:string => ([:align]))
905
+ end
906
+
907
+ class Param < HTMLElement
908
+ identifier(:tag_name => "param")
909
+
910
+ container_method(:param)
911
+
912
+ collection_method(:params)
913
+
914
+ attributes(:string => ([:type, :value_type]))
915
+ end
916
+
917
+ class Pre < HTMLElement
918
+ identifier(:tag_name => "pre")
919
+
920
+ container_method(:pre)
921
+
922
+ collection_method(:pres)
923
+
924
+ attributes(:int => ([:width]))
925
+ end
926
+
927
+ class Script < HTMLElement
928
+ identifier(:tag_name => "script")
929
+
930
+ container_method(:script)
931
+
932
+ collection_method(:scripts)
933
+
934
+ attributes(:string => ([:event, :html_for]))
935
+ end
936
+
937
+ class Table < HTMLElement
938
+ identifier(:tag_name => "table")
939
+
940
+ container_method(:table)
941
+
942
+ collection_method(:tables)
943
+
944
+ attributes(:string => ([:align, :bg_color, :border, :cell_padding, :cell_spacing, :frame, :rules, :width]))
945
+ end
946
+
947
+ class TableSection < HTMLElement
948
+ identifier(:tag_name => "tbody")
949
+
950
+ container_method(:tbody)
951
+
952
+ collection_method(:tbodys)
953
+
954
+ attributes(:string => ([:align, :ch, :ch_off, :v_align]))
955
+ end
956
+
957
+ class TableRow < HTMLElement
958
+ identifier(:tag_name => "tr")
959
+
960
+ container_method(:tr)
961
+
962
+ collection_method(:trs)
963
+
964
+ attributes(:string => ([:align, :bg_color, :ch, :ch_off, :v_align]))
965
+ end
966
+
967
+ class UList < HTMLElement
968
+ identifier(:tag_name => "ul")
969
+
970
+ container_method(:ul)
971
+
972
+ collection_method(:uls)
973
+
974
+ attributes(:string => ([:type]), :bool => ([:compact]))
975
+ end
976
+
572
977
  class Thead < TableSection
573
978
  identifier(:tag_name => "thead")
574
-
979
+
575
980
  container_method(:thead)
576
-
981
+
577
982
  collection_method(:theads)
578
-
983
+
579
984
  # do nothing
580
985
  end
581
-
986
+
582
987
  class Dd < HTMLElement
583
988
  identifier(:tag_name => "dd")
584
-
989
+
585
990
  container_method(:dd)
586
-
991
+
587
992
  collection_method(:dds)
588
-
993
+
589
994
  # do nothing
590
995
  end
591
-
996
+
592
997
  class Address < HTMLElement
593
998
  identifier(:tag_name => "address")
594
-
999
+
595
1000
  container_method(:address)
596
-
597
- collection_method(:address)
598
-
1001
+
1002
+ collection_method(:addresses)
1003
+
599
1004
  # do nothing
600
1005
  end
601
-
1006
+
602
1007
  class Nav < HTMLElement
603
1008
  identifier(:tag_name => "nav")
604
-
1009
+
605
1010
  container_method(:nav)
606
-
1011
+
607
1012
  collection_method(:navs)
608
-
1013
+
609
1014
  # do nothing
610
1015
  end
611
-
1016
+
612
1017
  class TFoot < TableSection
613
1018
  identifier(:tag_name => "tfoot")
614
-
1019
+
615
1020
  container_method(:tfoot)
616
-
1021
+
617
1022
  collection_method(:tfoots)
618
-
1023
+
619
1024
  # do nothing
620
1025
  end
621
-
1026
+
622
1027
  class Sub < HTMLElement
623
1028
  identifier(:tag_name => "sub")
624
-
1029
+
625
1030
  container_method(:sub)
626
-
1031
+
627
1032
  collection_method(:subs)
628
-
1033
+
629
1034
  # do nothing
630
1035
  end
631
-
1036
+
632
1037
  class Sup < HTMLElement
633
1038
  identifier(:tag_name => "sup")
634
-
1039
+
635
1040
  container_method(:sup)
636
-
1041
+
637
1042
  collection_method(:sups)
638
-
1043
+
639
1044
  # do nothing
640
1045
  end
641
-
1046
+
642
1047
  class Bdo < HTMLElement
643
1048
  identifier(:tag_name => "bdo")
644
-
1049
+
645
1050
  container_method(:bdo)
646
-
1051
+
647
1052
  collection_method(:bdos)
648
-
1053
+
649
1054
  # do nothing
650
1055
  end
651
-
1056
+
652
1057
  class Rp < HTMLElement
653
1058
  identifier(:tag_name => "rp")
654
-
1059
+
655
1060
  container_method(:rp)
656
-
1061
+
657
1062
  collection_method(:rps)
658
-
1063
+
659
1064
  # do nothing
660
1065
  end
661
-
1066
+
662
1067
  class Rt < HTMLElement
663
1068
  identifier(:tag_name => "rt")
664
-
1069
+
665
1070
  container_method(:rt)
666
-
1071
+
667
1072
  collection_method(:rts)
668
-
1073
+
669
1074
  # do nothing
670
1075
  end
671
-
1076
+
672
1077
  class Mark < HTMLElement
673
1078
  identifier(:tag_name => "mark")
674
-
1079
+
675
1080
  container_method(:mark)
676
-
1081
+
677
1082
  collection_method(:marks)
678
-
1083
+
679
1084
  # do nothing
680
1085
  end
681
-
1086
+
682
1087
  class Kbd < HTMLElement
683
1088
  identifier(:tag_name => "kbd")
684
-
1089
+
685
1090
  container_method(:kbd)
686
-
1091
+
687
1092
  collection_method(:kbds)
688
-
1093
+
689
1094
  # do nothing
690
1095
  end
691
-
1096
+
692
1097
  class Dfn < HTMLElement
693
1098
  identifier(:tag_name => "dfn")
694
-
1099
+
695
1100
  container_method(:dfn)
696
-
1101
+
697
1102
  collection_method(:dfns)
698
-
1103
+
699
1104
  # do nothing
700
1105
  end
701
-
1106
+
702
1107
  class Cite < HTMLElement
703
1108
  identifier(:tag_name => "cite")
704
-
1109
+
705
1110
  container_method(:cite)
706
-
1111
+
707
1112
  collection_method(:cites)
708
-
1113
+
709
1114
  # do nothing
710
1115
  end
711
-
1116
+
712
1117
  class Ins < Mod
713
1118
  identifier(:tag_name => "ins")
714
-
1119
+
715
1120
  container_method(:ins)
716
-
717
- collection_method(:ins)
718
-
1121
+
1122
+ collection_method(:inses)
1123
+
719
1124
  # do nothing
720
1125
  end
721
-
1126
+
722
1127
  class B < HTMLElement
723
1128
  identifier(:tag_name => "b")
724
-
1129
+
725
1130
  container_method(:b)
726
-
1131
+
727
1132
  collection_method(:bs)
728
-
1133
+
729
1134
  # do nothing
730
1135
  end
731
-
1136
+
732
1137
  class Noscript < HTMLElement
733
1138
  identifier(:tag_name => "noscript")
734
-
1139
+
735
1140
  container_method(:noscript)
736
-
1141
+
737
1142
  collection_method(:noscripts)
738
-
1143
+
739
1144
  # do nothing
740
1145
  end
741
-
1146
+
742
1147
  class Figure < HTMLElement
743
1148
  identifier(:tag_name => "figure")
744
-
1149
+
745
1150
  container_method(:figure)
746
-
1151
+
747
1152
  collection_method(:figures)
748
-
1153
+
749
1154
  # do nothing
750
1155
  end
751
-
1156
+
752
1157
  class Code < HTMLElement
753
1158
  identifier(:tag_name => "code")
754
-
1159
+
755
1160
  container_method(:code)
756
-
1161
+
757
1162
  collection_method(:codes)
758
-
1163
+
759
1164
  # do nothing
760
1165
  end
761
-
1166
+
762
1167
  class Q < Quote
763
1168
  identifier(:tag_name => "q")
764
-
1169
+
765
1170
  container_method(:q)
766
-
1171
+
767
1172
  collection_method(:qs)
768
-
1173
+
769
1174
  # do nothing
770
1175
  end
771
-
1176
+
772
1177
  class Strong < HTMLElement
773
1178
  identifier(:tag_name => "strong")
774
-
1179
+
775
1180
  container_method(:strong)
776
-
1181
+
777
1182
  collection_method(:strongs)
778
-
1183
+
779
1184
  # do nothing
780
1185
  end
781
-
1186
+
782
1187
  class Header < HTMLElement
783
1188
  identifier(:tag_name => "header")
784
-
1189
+
785
1190
  container_method(:header)
786
-
1191
+
787
1192
  collection_method(:headers)
788
-
1193
+
789
1194
  # do nothing
790
1195
  end
791
-
1196
+
792
1197
  class Hgroup < HTMLElement
793
1198
  identifier(:tag_name => "hgroup")
794
-
1199
+
795
1200
  container_method(:hgroup)
796
-
1201
+
797
1202
  collection_method(:hgroups)
798
-
1203
+
799
1204
  # do nothing
800
1205
  end
801
-
1206
+
802
1207
  class Aside < HTMLElement
803
1208
  identifier(:tag_name => "aside")
804
-
1209
+
805
1210
  container_method(:aside)
806
-
1211
+
807
1212
  collection_method(:asides)
808
-
1213
+
809
1214
  # do nothing
810
1215
  end
811
-
1216
+
812
1217
  class Samp < HTMLElement
813
1218
  identifier(:tag_name => "samp")
814
-
1219
+
815
1220
  container_method(:samp)
816
-
1221
+
817
1222
  collection_method(:samps)
818
-
1223
+
819
1224
  # do nothing
820
1225
  end
821
-
1226
+
822
1227
  class Section < HTMLElement
823
1228
  identifier(:tag_name => "section")
824
-
1229
+
825
1230
  container_method(:section)
826
-
1231
+
827
1232
  collection_method(:sections)
828
-
1233
+
829
1234
  # do nothing
830
1235
  end
831
-
1236
+
832
1237
  class Dt < HTMLElement
833
1238
  identifier(:tag_name => "dt")
834
-
1239
+
835
1240
  container_method(:dt)
836
-
1241
+
837
1242
  collection_method(:dts)
838
-
1243
+
839
1244
  # do nothing
840
1245
  end
841
-
1246
+
842
1247
  class Col < TableCol
843
1248
  identifier(:tag_name => "col")
844
-
1249
+
845
1250
  container_method(:col)
846
-
1251
+
847
1252
  collection_method(:cols)
848
-
1253
+
849
1254
  # do nothing
850
1255
  end
851
-
1256
+
852
1257
  class I < HTMLElement
853
1258
  identifier(:tag_name => "i")
854
-
1259
+
855
1260
  container_method(:i)
856
-
1261
+
857
1262
  collection_method(:is)
858
-
1263
+
859
1264
  # do nothing
860
1265
  end
861
-
1266
+
862
1267
  class Var < HTMLElement
863
1268
  identifier(:tag_name => "var")
864
-
1269
+
865
1270
  container_method(:var)
866
-
1271
+
867
1272
  collection_method(:vars)
868
-
1273
+
869
1274
  # do nothing
870
1275
  end
871
-
1276
+
872
1277
  class Abbr < HTMLElement
873
1278
  identifier(:tag_name => "abbr")
874
-
1279
+
875
1280
  container_method(:abbr)
876
-
1281
+
877
1282
  collection_method(:abbrs)
878
-
1283
+
879
1284
  # do nothing
880
1285
  end
881
-
1286
+
882
1287
  class Small < HTMLElement
883
1288
  identifier(:tag_name => "small")
884
-
1289
+
885
1290
  container_method(:small)
886
-
1291
+
887
1292
  collection_method(:smalls)
888
-
1293
+
889
1294
  # do nothing
890
1295
  end
891
-
1296
+
892
1297
  class Footer < HTMLElement
893
1298
  identifier(:tag_name => "footer")
894
-
1299
+
895
1300
  container_method(:footer)
896
-
1301
+
897
1302
  collection_method(:footers)
898
-
1303
+
899
1304
  # do nothing
900
1305
  end
901
-
1306
+
902
1307
  class Ruby < HTMLElement
903
1308
  identifier(:tag_name => "ruby")
904
-
1309
+
905
1310
  container_method(:ruby)
906
-
907
- collection_method(:rubys)
908
-
1311
+
1312
+ collection_method(:rubies)
1313
+
909
1314
  # do nothing
910
1315
  end
911
-
1316
+
912
1317
  class Article < HTMLElement
913
1318
  identifier(:tag_name => "article")
914
-
1319
+
915
1320
  container_method(:article)
916
-
1321
+
917
1322
  collection_method(:articles)
918
-
1323
+
919
1324
  # do nothing
920
1325
  end
921
-
1326
+
922
1327
  class Del < Mod
923
1328
  identifier(:tag_name => "del")
924
-
1329
+
925
1330
  container_method(:del)
926
-
1331
+
927
1332
  collection_method(:dels)
928
-
1333
+
929
1334
  # do nothing
930
1335
  end
931
-
1336
+
932
1337
  class Em < HTMLElement
933
1338
  identifier(:tag_name => "em")
934
-
1339
+
935
1340
  container_method(:em)
936
-
1341
+
937
1342
  collection_method(:ems)
938
-
1343
+
939
1344
  # do nothing
940
1345
  end
941
1346
  end