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.

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 jeffa@cpan.org