I would like to announce the release of version 2.4 of KirbyBase, a
small, pure-Ruby database management system that stores it’s data in
You can download it here:
I know, I know, where’s the gem? Well, it’s not for lack of help. Both
Hugh S. and Assaph M. have been kind enough to supply me with
gemspec files for KirbyBase. I promise I will put a gem together real
Anyway, here’s whats new in this release:
- Added a new column type: :Time. Thanks to George M. for
- Added more functionality to Memo and Blob fields. They are no longer
just read-only. You can now also write to them from KirbyBase. The
interface for Memo and Blob fields has changed because of this.
- Added the ability to specify, when you initialize a database
a base directory where memo/blob fields will be stored.
- Changed the way indexes are handled by KBTable in client/server mode.
Now, when KBTable grabs an index from KBEngine, it will hold onto it
re-use it unless it has been modified since the last time it grabbed
This speeds up subsequent queries on the same index.
- Removed the restriction that the child table had to exist before you
could define a Link_many field in #create_table. I did this so that
it would possible to now define many-to-many links. See the example
the distribution. This also goes for Lookup fields.
- Added two sample scripts: kbserverctl.rb and kbserver_daemon.rb, that
show how to set up a KirbyBase server process as a Windows Service.
Thanks to Daniel B. for his excellent package, win32-service.
- Thouroughly revised the manual. I used the excellent text document
formatter, AsciiDoc. Many thanks to Stuart R. for developing
- Fixed a bug in KBTable#clear that was causing the recno counter not to
be reset. Thanks to basi for this.
I would like to thank all of the people who provided bug fixes,
suggestions, and ideas for version 2.4.