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
Copyright
© 2015 Jeff Anderson – All Rights Reserved
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]