# Jig 0.1.0 Released

**URL:** <https://www.ruby-forum.com/t/jig-0-1-0-released/104446>\
**Category:** Ruby\
**Created:** [May 18, 2007, 1:35am UTC](https://www.ruby-forum.com/t/jig-0-1-0-released/104446 "2007-05-18T01:35:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![pfharlock](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/f04885/32.png) [@pfharlock](https://www.ruby-forum.com/u/pfharlock)\
**Post date:** [May 18, 2007, 1:35am UTC](https://www.ruby-forum.com/t/jig-0-1-0-released/104446/1 "2007-05-18T01:35:53Z")

</div>

Jig version 0.1.0 has been released.

[http://www.rubyforge.org/projects/jig](http://www.rubyforge.org/projects/jig)

A jig is a data structure designed to facilitate construction and  
manipulation of strings with an inherent hierarchical syntax. The  
idea is derived from the project ([http://www.brics.dk/bigwig/](http://www.brics.dk/bigwig/))  
and in particular the XML templating constructs described in the  
paper: A Type System for Dynamic Web Documents  
([http://www.brics.dk/bigwig/publications/dyndoc.pdf](http://www.brics.dk/bigwig/publications/dyndoc.pdf)). The name is  
derived from woodworking where a jig is a template designed to guide  
other tools.

A jig is an ordered sequence of objects (usually strings) and named  
gaps. When rendered as a string by Jig#to\_s, the objects are  
rendered by calling #to\_s on each object in order. The gaps are skipped.

A new jig may be constructed from an existing jig by ‘plugging’ one  
or more of the named gaps. The new jig shares the objects and their  
ordering from the original jig but with the named gap replaced with  
the ‘plug’. Gaps may be plugged by any object or sequence of  
objects. When a gap is plugged with another jig, the contents  
(including gaps) are incorporated into the new jig.

In addition to strings and gaps, a Jig may contain proc objects  
(or lambdas or methods). Procs within a jig are not evaluated until  
the jig is rendered as a string by #to\_s.

The Jig package includes subclasses for constructing XML, XHTML,  
and CSS documents.

Documentation

[http://jig.rubyforge.org/rdoc](http://jig.rubyforge.org/rdoc)

Install (once the gem shows up in the gem mirrors):

gem install jig

Gary W.
