HTML::AutoTag
Just another HTML tag and attribute generator for ruby.
Description
Generate HTML tags and attributes with ease (HTML4, XHTML and HTML5). Handles rotating attributes.
Installation
gem install HTML-AutoTag
Synopsis
require 'HTML/AutoTag'
auto = HTML::AutoTag.new
puts auto.tag( 'tag' => 'hr' )
puts auto.tag( 'tag' => 'h1', 'cdata' => 'heading' )
puts auto.tag( 'tag' => 'p', 'cdata' => 'paragraph', 'attr' => { 'class' => 'para' } )
attr = { 'style' => { 'color' => %w{ odd even } } }
puts auto.tag(
'tag' => 'ol',
'attr' => { 'reversed' => 'reversed' },
'cdata' => %w{ 1 2 3 4 5 }.map{ |d| { 'tag' => 'li', 'attr' => attr, 'cdata' => d } }
)
Also includes HTML::AutoAttr which provides rotating attributes:
require 'HTML/AutoAttr'
attr = HTML::AutoAttr.new( { 'foo' => ['bar','baz','qux'] } )
4.times { puts attr.to_s }
Methods
With the exception of new, all methods return an HTML table as a string.
-
new( params )
-
encode=(boolean) Whether or not to Encode entities.
-
encodes=(string) Encode these HTML entities. Pass string with chars you want encoded or leave blank for default control and high bit chars and <>!‘“
-
indent=(string) Pretty print results.
-
level=(integer) Indentation level to start at.
-
sorted=(boolean) Sort attribute names of the tag alphabetically.
-
-
tag( params )
-
tag=(string) The name of the tag.
-
attr=(hash) Attribute names and values for the tag.
-
cdata=(string,hash,array) The value wrapped by the tag.
-
scalar - the string to be wrapped by the tag
-
hash - another tag with its own cdata and attributes
-
array - list of scalars or list of more hashes
-
-
More Complex Example
The follow will render an HTML table with row that have alternating class names and cells that have alternating background colors:
require 'HTML/AutoTag'
auto = HTML::AutoTag.new
tr_attr = { 'class' => %w{ odd even } }
puts auto.tag(
'tag' => 'table',
'attr' => { 'class' => 'spreadsheet' },
'cdata' => Array[
{
'tag' => 'tr',
'attr' => tr_attr,
'cdata' => {
'tag' => 'th',
'attr' => { 'style' => { 'color' => %w{ red green } } },
'cdata' => %w{ one two three },
},
},
{
'tag' => 'tr',
'attr' => tr_attr,
'cdata' => {
'tag' => 'td',
'attr' => { 'style' => { 'color' => %w{ green blue } } },
'cdata' => %w{ four five six },
},
},
{
'tag' => 'tr',
'attr' => tr_attr,
'cdata' => {
'tag' => 'td',
'attr' => { 'style' => { 'color' => %w{ red green } } },
'cdata' => %w{ seven eight nine },
},
},
]
)
See Spreadsheet-HTML for generating HTML tables.
License
MIT
Warranty
This package is provided “as is” and without any express or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.
Author
Jeff Anderson [email protected]