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]