== 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
(C) 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 jeffa@cpan.org
