Module: AttributeHandler
- Included in:
- HTML::Table, HTML::Table::Caption, HTML::Table::ColGroup, HTML::Table::TableSection, Table::ColGroup::Col, Table::Row, Table::Row::Data, Table::Row::Header
- Defined in:
- lib/html/attribute_handler.rb
Overview
This module creates methods for each of the various attributes associated with HTML tables. In some cases validation is done on the setters. – The seemingly redundant writer methods were left here for backwards compatibility and for those who may not prefer the DSI.
Instance Method Summary collapse
- #abbr(string = nil) ⇒ Object
- #abbr=(string) ⇒ Object
- #align(position = nil) ⇒ Object
- #align=(position) ⇒ Object
- #axis(string = nil) ⇒ Object
- #axis=(string) ⇒ Object
- #background(url = nil) ⇒ Object
- #background=(url) ⇒ Object
- #bgcolor(color = nil) ⇒ Object
- #bgcolor=(color) ⇒ Object
- #border(num = nil) ⇒ Object
-
#border=(num) ⇒ Object
Allow either true/false or an integer.
- #bordercolor(color = nil) ⇒ Object
- #bordercolor=(color) ⇒ Object
- #bordercolordark(color = nil) ⇒ Object
- #bordercolordark=(color) ⇒ Object
- #bordercolorlight(color = nil) ⇒ Object
- #bordercolorlight=(color) ⇒ Object
- #cellpadding(num = nil) ⇒ Object
- #cellpadding=(num) ⇒ Object
- #cellspacing(num = nil) ⇒ Object
- #cellspacing=(num) ⇒ Object
- #char(character = nil) ⇒ Object
- #char=(character) ⇒ Object
- #charoff(offset = nil) ⇒ Object
- #charoff=(offset) ⇒ Object
-
#class_(klass = nil) ⇒ Object
Returns the CSS class.
-
#class_=(klass) ⇒ Object
Returns the CSS class.
- #col(num = nil) ⇒ Object
- #col=(num) ⇒ Object
- #colspan(span = nil) ⇒ Object
- #colspan=(span) ⇒ Object
-
#configure(row, col = nil, &block) ⇒ Object
Allows you to configure various attributes by row or row + column.
-
#content(arg = nil, &block) ⇒ Object
(also: #data)
Returns the HTML content (i.e. text).
- #frame(type = nil) ⇒ Object
- #frame=(type) ⇒ Object
- #height(num = nil) ⇒ Object
- #height=(num) ⇒ Object
- #hspace(num = nil) ⇒ Object
- #hspace=(num) ⇒ Object
- #nowrap(bool = nil) ⇒ Object
- #nowrap=(bool) ⇒ Object
- #rowspan(num = nil) ⇒ Object
- #rowspan=(num) ⇒ Object
- #rules(edges = nil) ⇒ Object
- #rules=(edges) ⇒ Object
- #span(num = nil) ⇒ Object
- #span=(num) ⇒ Object
- #style(string = nil) ⇒ Object
- #style=(string) ⇒ Object
- #summary(string = nil) ⇒ Object
- #summary=(string) ⇒ Object
- #valign(position = nil) ⇒ Object
- #valign=(position) ⇒ Object
- #vspace(num = nil) ⇒ Object
- #vspace=(num) ⇒ Object
- #width(num = nil) ⇒ Object
- #width=(num) ⇒ Object
Instance Method Details
#abbr(string = nil) ⇒ Object
8 9 10 11 12 |
# File 'lib/html/attribute_handler.rb', line 8 def abbr(string = nil) @abbr ||= nil self.abbr = string if string @abbr end |
#abbr=(string) ⇒ Object
14 15 16 17 |
# File 'lib/html/attribute_handler.rb', line 14 def abbr=(string) @abbr = string modify_html("abbr", string) end |
#align(position = nil) ⇒ Object
19 20 21 22 23 |
# File 'lib/html/attribute_handler.rb', line 19 def align(position = nil) @align ||= nil self.align = position if position @align end |
#align=(position) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/html/attribute_handler.rb', line 25 def align=(position) valid = %w/top bottom left center right/ raise ArgumentError unless valid.include?(position.downcase) @align = position modify_html("align", position) end |
#axis(string = nil) ⇒ Object
32 33 34 35 36 |
# File 'lib/html/attribute_handler.rb', line 32 def axis(string = nil) @axis ||= nil self.axis = string if string @axis end |
#axis=(string) ⇒ Object
38 39 40 41 |
# File 'lib/html/attribute_handler.rb', line 38 def axis=(string) @axis = string modify_html("axis", string) end |
#background(url = nil) ⇒ Object
43 44 45 46 47 |
# File 'lib/html/attribute_handler.rb', line 43 def background(url = nil) @background ||= nil self.background = url if url @background end |
#background=(url) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/html/attribute_handler.rb', line 49 def background=(url) raise TypeError unless url.kind_of?(String) msg = "'background' is a non-standard extension" warn NonStandardExtensionWarning, msg @background = url modify_html("background", url) end |
#bgcolor(color = nil) ⇒ Object
57 58 59 60 61 |
# File 'lib/html/attribute_handler.rb', line 57 def bgcolor(color = nil) @bgcolor ||= nil self.bgcolor = color if color @bgcolor end |
#bgcolor=(color) ⇒ Object
63 64 65 66 |
# File 'lib/html/attribute_handler.rb', line 63 def bgcolor=(color) @bgcolor = color modify_html("bgcolor", color) end |
#border(num = nil) ⇒ Object
68 69 70 71 72 |
# File 'lib/html/attribute_handler.rb', line 68 def border(num = nil) @border ||= nil self.border = num if num @border end |
#border=(num) ⇒ Object
Allow either true/false or an integer
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/html/attribute_handler.rb', line 75 def border=(num) if num.kind_of?(TrueClass) modify_html("border", true) elsif num.kind_of?(FalseClass) # Do nothing else @border = num.to_i modify_html("border", num.to_i) end end |
#bordercolor(color = nil) ⇒ Object
86 87 88 89 90 |
# File 'lib/html/attribute_handler.rb', line 86 def bordercolor(color = nil) @bordercolor ||= nil self.bordercolor = color if color @bordercolor end |
#bordercolor=(color) ⇒ Object
92 93 94 95 96 97 |
# File 'lib/html/attribute_handler.rb', line 92 def bordercolor=(color) @bordercolor = color msg = "'bordercolor' is a non-standard extension" warn NonStandardExtensionWarning, msg modify_html("bordercolor", color) end |
#bordercolordark(color = nil) ⇒ Object
99 100 101 102 103 |
# File 'lib/html/attribute_handler.rb', line 99 def bordercolordark(color = nil) @bordercolordark ||= nil self.bordercolordark = color if color @bordercolordark end |
#bordercolordark=(color) ⇒ Object
105 106 107 108 109 110 |
# File 'lib/html/attribute_handler.rb', line 105 def bordercolordark=(color) @bordercolordark = color msg = "'bordercolordark' is a non-standard extension" warn NonStandardExtensionWarning, msg modify_html("bordercolordark", color) end |
#bordercolorlight(color = nil) ⇒ Object
112 113 114 115 116 |
# File 'lib/html/attribute_handler.rb', line 112 def bordercolorlight(color = nil) @bordercolorlight ||= nil self.bordercolorlight = color if color @bordercolorlight end |
#bordercolorlight=(color) ⇒ Object
118 119 120 121 122 123 |
# File 'lib/html/attribute_handler.rb', line 118 def bordercolorlight=(color) @bordercolorlight = color msg = "'bordercolorlight' is a non-standard extension" warn NonStandardExtensionWarning, msg modify_html("bordercolorlight", @bordercolorlight) end |
#cellpadding(num = nil) ⇒ Object
125 126 127 128 129 |
# File 'lib/html/attribute_handler.rb', line 125 def cellpadding(num = nil) @cellpadding ||= nil self.cellpadding = num if num @cellpadding end |
#cellpadding=(num) ⇒ Object
131 132 133 134 135 |
# File 'lib/html/attribute_handler.rb', line 131 def cellpadding=(num) raise ArgumentError if num.to_i < 0 @cellpadding = num.to_i modify_html("cellpadding", @cellpadding) end |
#cellspacing(num = nil) ⇒ Object
137 138 139 140 141 |
# File 'lib/html/attribute_handler.rb', line 137 def cellspacing(num = nil) @cellspacing ||= nil self.cellspacing = num if num @cellspacing end |
#cellspacing=(num) ⇒ Object
143 144 145 146 147 |
# File 'lib/html/attribute_handler.rb', line 143 def cellspacing=(num) raise ArgumentError if num.to_i < 0 @cellspacing = num.to_i modify_html("cellspacing", @cellspacing) end |
#char(character = nil) ⇒ Object
149 150 151 152 153 |
# File 'lib/html/attribute_handler.rb', line 149 def char(character = nil) @char ||= nil self.char = character if character @char end |
#char=(character) ⇒ Object
155 156 157 158 159 |
# File 'lib/html/attribute_handler.rb', line 155 def char=(character) raise ArgumentError if character.to_s.length > 1 @char = character.to_s modify_html("char", character.to_s) end |
#charoff(offset = nil) ⇒ Object
161 162 163 164 165 |
# File 'lib/html/attribute_handler.rb', line 161 def charoff(offset = nil) @charoff ||= nil self.charoff = offset if offset @charoff end |
#charoff=(offset) ⇒ Object
167 168 169 170 171 |
# File 'lib/html/attribute_handler.rb', line 167 def charoff=(offset) raise ArgumentError if offset.to_i < 0 @charoff = offset modify_html("charoff", offset) end |
#class_(klass = nil) ⇒ Object
Returns the CSS class. The trailing underscore is necessary in order to avoid conflict with the ‘class’ keyword.
176 177 178 179 180 |
# File 'lib/html/attribute_handler.rb', line 176 def class_(klass = nil) @class ||= nil self.class_ = klass if klass @class end |
#class_=(klass) ⇒ Object
Returns the CSS class. The trailing underscore is necessary in order to avoid conflict with the ‘class’ keyword.
185 186 187 188 |
# File 'lib/html/attribute_handler.rb', line 185 def class_=(klass) modify_html('class', klass) @class = klass end |
#col(num = nil) ⇒ Object
190 191 192 193 194 |
# File 'lib/html/attribute_handler.rb', line 190 def col(num = nil) @col ||= nil self.col = num if num @col end |
#col=(num) ⇒ Object
196 197 198 199 200 |
# File 'lib/html/attribute_handler.rb', line 196 def col=(num) raise ArgumentError if num.to_i < 0 @col = num.to_i modify_html("col", @col) end |
#colspan(span = nil) ⇒ Object
202 203 204 205 206 |
# File 'lib/html/attribute_handler.rb', line 202 def colspan(span = nil) @colspan ||= nil self.colspan = span if span @colspan end |
#colspan=(span) ⇒ Object
208 209 210 211 212 |
# File 'lib/html/attribute_handler.rb', line 208 def colspan=(span) raise ArgumentError if span.to_i < 0 @colspan = span.to_i modify_html("colspan", @colspan) end |
#configure(row, col = nil, &block) ⇒ Object
Allows you to configure various attributes by row or row + column.
216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/html/attribute_handler.rb', line 216 def configure(row, col=nil, &block) if col begin yield self[row][col] rescue NameError msg = "No column to configure in a " + self.class.to_s + " class" raise ArgumentError, msg end else yield self[row] end end |
#content(arg = nil, &block) ⇒ Object Also known as: data
Returns the HTML content (i.e. text).
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/html/attribute_handler.rb', line 231 def content(arg = nil, &block) case arg when String self.content = Table::Content.new(arg, &block) when Array arg.each{ |e| if e.kind_of?(Array) row = Table::Row.new e.each{ |element| row.push(Table::Content.new(element, &block)) } self.push(row) else self.content = Table::Content.new(e, &block) end } else self.content = arg if arg end @html_body end |
#frame(type = nil) ⇒ Object
253 254 255 256 257 |
# File 'lib/html/attribute_handler.rb', line 253 def frame(type = nil) @frame ||= nil self.frame = type if type @frame end |
#frame=(type) ⇒ Object
259 260 261 262 263 264 |
# File 'lib/html/attribute_handler.rb', line 259 def frame=(type) valid = %w/border void above below hsides lhs rhs vsides box/ raise ArgumentError unless valid.include?(type.downcase) @frame = type modify_html("frame", @frame) end |
#height(num = nil) ⇒ Object
266 267 268 269 270 |
# File 'lib/html/attribute_handler.rb', line 266 def height(num = nil) @height ||= nil self.height = num if num @height end |
#height=(num) ⇒ Object
272 273 274 275 276 |
# File 'lib/html/attribute_handler.rb', line 272 def height=(num) raise ArgumentError if num.to_i < 0 @height = num.to_i modify_html("height", @height) end |
#hspace(num = nil) ⇒ Object
278 279 280 281 282 |
# File 'lib/html/attribute_handler.rb', line 278 def hspace(num = nil) @hspace ||= nil self.hspace = num if num @hspace end |
#hspace=(num) ⇒ Object
284 285 286 287 288 |
# File 'lib/html/attribute_handler.rb', line 284 def hspace=(num) raise ArgumentError if num.to_i < 0 @hspace = num.to_i modify_html("hspace", @hspace) end |
#nowrap(bool = nil) ⇒ Object
290 291 292 293 294 |
# File 'lib/html/attribute_handler.rb', line 290 def nowrap(bool = nil) @nowrap ||= nil self.nowrap = bool if bool @nowrap end |
#nowrap=(bool) ⇒ Object
296 297 298 299 300 301 302 |
# File 'lib/html/attribute_handler.rb', line 296 def nowrap=(bool) unless bool.kind_of?(TrueClass) || bool.kind_of?(FalseClass) raise TypeError end @nowrap = bool modify_html("nowrap", @nowrap) end |
#rowspan(num = nil) ⇒ Object
304 305 306 307 308 |
# File 'lib/html/attribute_handler.rb', line 304 def rowspan(num = nil) @rowspan ||= nil self.rowspan = num if num @rowspan end |
#rowspan=(num) ⇒ Object
310 311 312 313 314 |
# File 'lib/html/attribute_handler.rb', line 310 def rowspan=(num) raise ArgumentError if num.to_i < 0 @rowspan = num.to_i modify_html("rowspan", @rowspan) end |
#rules(edges = nil) ⇒ Object
316 317 318 319 320 |
# File 'lib/html/attribute_handler.rb', line 316 def rules(edges = nil) @rules ||= nil self.rules = edges if edges @rules end |
#rules=(edges) ⇒ Object
322 323 324 325 326 327 |
# File 'lib/html/attribute_handler.rb', line 322 def rules=(edges) valid = %w/all groups rows cols none/ raise ArgumentError unless valid.include?(edges.to_s.downcase) @rules = edges modify_html("rules", @rules) end |
#span(num = nil) ⇒ Object
329 330 331 332 333 |
# File 'lib/html/attribute_handler.rb', line 329 def span(num = nil) @span ||= nil self.span = num if num @span end |
#span=(num) ⇒ Object
335 336 337 338 339 |
# File 'lib/html/attribute_handler.rb', line 335 def span=(num) raise ArgumentError if num.to_i < 0 @span = num.to_i modify_html("span", @span) end |
#style(string = nil) ⇒ Object
341 342 343 344 345 |
# File 'lib/html/attribute_handler.rb', line 341 def style(string = nil) @style ||= nil self.style = string if string @style end |
#style=(string) ⇒ Object
347 348 349 350 |
# File 'lib/html/attribute_handler.rb', line 347 def style=(string) @style = string.to_s modify_html("style", @style) end |
#summary(string = nil) ⇒ Object
352 353 354 355 356 |
# File 'lib/html/attribute_handler.rb', line 352 def summary(string = nil) @summary ||= nil self.summary = string if string @summary end |
#summary=(string) ⇒ Object
358 359 360 361 |
# File 'lib/html/attribute_handler.rb', line 358 def summary=(string) @summary = string.to_s modify_html("summary", @summary) end |
#valign(position = nil) ⇒ Object
363 364 365 366 367 |
# File 'lib/html/attribute_handler.rb', line 363 def valign(position = nil) @valign ||= nil self.valign = position if position @valign end |
#valign=(position) ⇒ Object
369 370 371 372 373 374 |
# File 'lib/html/attribute_handler.rb', line 369 def valign=(position) valid = %w/top center bottom baseline/ raise ArgumentError unless valid.include?(position.to_s.downcase) @valign = position modify_html("valign", @valign) end |
#vspace(num = nil) ⇒ Object
376 377 378 379 380 |
# File 'lib/html/attribute_handler.rb', line 376 def vspace(num = nil) @vspace ||= nil self.vspace = num if num @vspace end |
#vspace=(num) ⇒ Object
382 383 384 385 386 |
# File 'lib/html/attribute_handler.rb', line 382 def vspace=(num) raise ArgumentError if num.to_i < 0 @vspace = num.to_i modify_html("vspace", @vspace) end |
#width(num = nil) ⇒ Object
388 389 390 391 392 |
# File 'lib/html/attribute_handler.rb', line 388 def width(num = nil) @width ||= nil self.width = num if num @width end |
#width=(num) ⇒ Object
394 395 396 397 398 399 400 401 402 |
# File 'lib/html/attribute_handler.rb', line 394 def width=(num) if num =~ /%/ @width = num else raise ArgumentError if num.to_i < 0 @width = num.to_i end modify_html("width", @width) end |