watir-webdriver 0.0.1.dev6 → 0.0.1.dev7

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