LightOptionParser
-----------------
Lightweight, fairly featureful option parsing mechanism idiomatic to Groovy.
Takes in a map of parameter definitions and returns a map of option values and
arguments.
NullOutputStream
----------------
Ignores all data sent its way.
ParameterizedSocket
-------------------
Added trace and debug logging to the message handling code.
SmartConfig
-----------
Fixed a bug where a property lookup on a non-existent property with no default
given caused a null pointer exception trying to resolve the class of the default
value.
ParameterizedSocket
-------------------
Moved from transmitting a list of strings (represented by ASCII data separated
by ASCII record separators `0x1E`) to a combination of strings and paired
strings. Basically, instead of each record being processed as a whole, a record
may optionall contain the ASCII unit separator `0x1F`. If it does, the record
will be split and treated as a key-value pair. This is implemented in the
`ParameterizedSocket.Message` class.o
LoggerOutputStream
------------------
Was not initializing the internal buffer.
Default behavior in SmartConfig was wrong. What it should be (and now is) is
when a value is requested but not present, the value is set and returned with
the default if given, or null is returned if no default is given.
* Changed the behavior of SmartConfig when setting file type properties. Now it
tries to coerce the given value into a File object if it is not already a File
object.
* Changed the behavior of SmartConfig when retrieving a property without
specifying a default value. Now it returns null if the property is not set and
no default is given.
* Added `SmartConfig.load()` to allow runtime reloading of config.
* Added `WrappedPrinter` which allows you to print horizontally aligned and
offset text blocks in a monotype environment.