Up to Main Index                           Up to Journal for January, 2017

                   JOURNAL FOR WEDNESDAY 18TH JANUARY, 2017
______________________________________________________________________________

SUBJECT: RecordJar has new data types + working vetoes
   DATE: Wed 18 Jan 20:52:06 GMT 2017

Very busy with work again but I have also been working on WolfMUD a bit :)

In my last entry I was wittering on about RecordJar files and how to handle
multiple string values for a field[1]. I have now settled on an implementation
which adds three new record data types: String List, Keyed String and Keyed
String List.

A string list uses a colon (ASCII 0x38, ‘:’) to separate the strings in a
list. For example actions could now be specified as:


  Actions: The rabbit hops around a bit.
         : You see the rabbit twitch its little nose, Ahh...


This is my preferred format, but you can put the colon anywhere in the string.
A less clear / more confusing example:


  Actions: The rabbit hops around a bit. : You see the rabbit twitch its
           little nose, Ahh...


I suppose this could be used for short strings:


  Actions: The rabbit hops. : The rabbit twitches : The rabbit squeaks.


Leading and trailing white space around the colon will be removed. At the
moment there is no way to escape a colon and have it as part of a string.

Next new type is a keyed string. A keyed string is a single word, followed by
any non-letter or non-digit separator, followed by a string. I’ll show a
working example shortly, for now an imaginary example:


  Example: TEST→This is the string for the key TEST.


Here we have the string “This is the string for the key TEST.” with the key
“TEST”, the separator used is the ‘→’. Again leading and trailing white space
will be removed around the colon and the separator. This is similar to the
Pair List which is used to represents exits:


  Exits: E→L3 SE→L4 S→L2


The main difference between a keyed string and a pair list is that a pair list
cannot have white space around the separator. Last of all we have a keyed
string list which combines string list and keyed string. An example for this
could be:


  Vetoes: GET→The rabbit does not appreciate being picked up.
        : PUT→The rabbit does not want to be put anywhere.


Here we have two keyed strings in a string list. I’ve actually implemented
this for vetoes now and vetoes can be defined as above in zone files. If you
have a copy of WolfMUD and look in the sample zinara.wrj file I have added a
few examples.

All of the changes described including updates to documentation, vetoes, zone
files and the rewritten recordjar.Read method are now available from the
public Git dev branch[2].

--
Diddymus

  [1] Journal for 8th January: ./8.html

  [2] For WolfMUD Git repository see: ../../../downloads/index.html


  Up to Main Index                           Up to Journal for January, 2017