Common attributes parser code module, for use by Plugins authors.
  Summary of Contents 
Provides a simple and consistent interface for creation and management of lists of standard TWiki-syntax attribute value lists, as used in tags.
  Detailed Documentation 
  Package TWiki::Contrib::Attrs 
Class of attribute sets, designed for parsing and storing attribute values
from a TWiki tag e.g. 
%TAG{fred="bad" "sad" joe="mad"}%
An attribute set is a map containing an entry for each parameter. The
default parameter (unnamed quoted string) is named 
__default__ in the map.
Attributes declared later in the string will override those of the same
name defined earlier. Escaping quotes is 
not supported.
The parser is forgiving; it will handle standard TWiki syntax (parameter
values double-quoted) but also single-quoted values, unquoted spaceless
values, spaces around the =, and commas as well as spaces separating values.
  new ($string, $friendly) => \%attrsObjectRef 
-  
$string - String containing attribute specification
 
-  
$friendly - if true, the parse will be according to the extended syntax pioneered by the original Contrib::Attrs. Otherwise it will be strict as per traditional TWiki syntax.
 
Parse a standard attribute string containing name=value pairs and create a new
attributes object. The value may be a word or a quoted string. If there is an
error during parsing, the parse will complete but $attrs->{_ERROR} will be
set in the new object.
Extended syntax example:
use TWiki::Contrib::Attrs;
my $attrs = new TWiki::Contrib::Attrs('the="time \\"has come", "the walrus" said to=speak of=\'many \\'things\', 1);
In this example:
-  
the will be time "has come
 
-  
__default__ will be the walrus
 
-  
said will be on
 
-  
to will be speak
 
-  
of will be many 'things
 
Only " and ' are escaped.
Traditional syntax is as old TWiki, except that the whole string is parsed
(the old parser would only recognise default values in position 1, nowhere
else)
  get( $key) => value 
Get an attr value; return undef if not set
  isEmpty() => boolean 
Return false if attribute set is not empty.
  remove($key) => value 
Remove an attr value from the map, return old value. After a call to
remove the attribute is no longer defined.
  toString() => string 
Generate a printed form for the map, using standard
attribute syntax, with only the single-quote extension
syntax observed (no {} brackets, though).
  Settings 
-  Name of the perl package
-  Set STUB = TWiki::Contrib::Attrs
 
 
  Installation Instructions 
-  Download the ZIP file from the Plugin web (see below)
 
-  Unzip 
AttrsContrib.zip in your twiki installation directory. Content: 
        
   |  File:  |  Description:  | 
    data/TWiki/AttrsContrib.txt  |     | 
    lib/TWiki/Contrib/Attrs.pm  |     | 
    lib/TWiki/Contrib/AttrsContrib/test.zip  |     | 
    lib/TWiki/Contrib/AttrsContrib/build.pl  |     | 
   
 
  Plugin Info 
Related Topics: TWikiPreferences
-- TWiki:Main/CrawfordCurrie - 12:53:50 16 August 2004