This page collects together a number of minor (often trivial) packages that either I think
are nevertheless useful enough to publish for their own sake, or which are required by other
(possibly forthcoming) packages in my goodies.
- Package Relative File Locator
-
two kinds of FileLocator that work relative to a package when used in the IDE, or
relative to the image when deployed. One benefit is that it means I don't have
to follow, let alone impose, the absurd practise of keeping packages in an
image-relative position.
- Varargs
-
Wrapper class for C's va_list that allows external interfacing to
many varargs-style functions. Also includes an implementation of
String>>sprintfWithArguments: which takes an array of
arguments for sprintf() (which can include floating point numbers) and formats accordingly.
- String Extensions
-
A few extra methods for String. Specifically versions of
#sprintf that take more arguments and access to C's strcmp()
(which provide case-sensitive ordering of Strings — in the C locale).
- Stream Extensions
-
A few trivial methods added to WriteStream
for writing out WORDs, DWORDs
and SDWORDs, plus big-endian equivalents.
- Abstract Collections
-
The standard Smalltalk Collections hierarchy has several concrete containers that
don't inherit from proper abstract superclasses, which makes them difficult to extend.
This package includes a number of classes that try to fake a reasonable abstraction
by inheriting from the concrete class, and then overriding enough methods
(back to subclassResponsibility) to act as an abstract base class for the same protocol.
- Collection Adaptors
-
Builds on the Abstract Collections package to provide a number of simple adaptor classes.
Adaptors wrap some existing object that implements a small part of the interface of some
collection/stream, and extends it to support the entire interface.
- Null Streams
-
Builds on the Abstract Collections package to provide two trivial Streams. A
WriteStream that discards everything that is
written to it, and a ReadStream that always
answers the same object to #next. Both keep
track of their positions.
- Rolling Accumulator
-
A circular buffer class.
- Binary Arrays
-
A few more binary arrays to complete the portfolio provided with Dolphin.
- Sort Blocks
-
Simple <diadicValuable> objects that can be used as sort blocks.
- Always
-
Simple <*adicValueable> objects that always answer the same value.
- Hashed Pair
-
Class of “pair” objects that are optimised for use as keys in dictionaries
to allow/simulate dictionaries with 2 or more keys. Also some helper methods
added to Dictionary.
- Storage Size
-
A single method added to Object that estimates its memory footprint
in bytes.
- Anonymous Subclass
-
Tiny framework for making anonymous subclasses (i.e. ones that are not linked into the
browsable hierarchy) of existing classes.
- Ghost Classes
-
Builds on Anonymous Subclass to provide a framework for creating ephemeral and
dynamically generated classes — ghost classes &mdash such as are
used by JNIPort.
- Object Methods
-
Builds on Anonymous Subclass to provide a framework for defining and managing
object-specific methods.
- Windows Shell Extensions
-
Trivial extension to the Windows Shell package which adds methods for retrieving
the names of Windows' standard folders (desktop, favourites, program files, etc).
Also extends BrowseFolderDialog to allow you to specify that network folders should
be included in the list.