watir-webdriver 0.0.1.dev6 → 0.0.1.dev7

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 (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