from celtech software:

news:

cs/Template initial release
Jun 18, 2004 @ 17:48:28 PDT from sean

My thanks to Brian Wisti for his wonderful PageTemplate library for Ruby, which I've used now for a year or two and which I got a lot of use out of, and also got most of my ideas from. It worked great for me, but I started to run into problems getting it to work happily with YAML input, so my primary reason for developing cs/Template was to have a template engine that could address any path possible in a YAML document. Since I was writing my own, I decided to write it in C and ended up with a huge speed boost, something on the order of 5x over PageTemplate.

Official blurb:

cs/Template is a fast, generic text templating engine for Ruby, written in C. Merge native Ruby data structures with text templates to produce final documents. Data structures may be any combination of Hashes, Arrays and Objects (works great with YAML input). Produces any type of text document. Place variables or eval statements anywhere in templates with path-like addressing, control block execution with if/then/else and generate looping blocks of text.

Name changes
Jun 15, 2004 @ 19:39:48 PDT from sean

Changed Interface and Battery to their new names. See the menu at left.

cs/Interface initial release
Jun 11, 2004 @ 16:36:44 PDT from sean

Interface was actually released a couple days ago, but it doesn't hurt to mention it anyway.

Interface lets you check Ruby classes and objects for interface compliance. Interfaces are sort of like classes, except they only provide definition, not implementation, and they're not tied to any class hierarchies. There are several (and hopefully more coming) pre-defined interfaces for IArray, IHash, IString, IDate, ITime, etc. and they're already applied to many existing Ruby classes and objects. It's also easy to create your own interfaces for your own objects, or to apply to existing classes/objects.

Why would anyone need this? Well, Ruby is really dynamic, and it's often very hard to tell what the purpose of any given object is. You can check for methods with respond_to?, but if you expect a lot of them to be available for one object, it's cumbersome. Also, sometimes you just can't tell the difference between an object that acts like a hash and one that acts like an array. By having these objects marked as "implementing an interface" you can easily tell what the purpose of an object is and can depend on certain methods to be available.

Check out the tutorial at the page linked at the left menu.

cs/Battery initial release
Jun 11, 2004 @ 10:16:00 PDT from sean

Just released a little tool I use occassionally, and I thought people would like to have.

It's yet another unit testing framework for Ruby, but with a bit of a difference. One thing that really irked the smurf out of me with existing unit testing frameworks for Ruby were I found it too hard, if not impossible, to control the order in which tests ran. I found that silly. So I wrote my own unit testing framework.

It also spits out a complete report in YAML, so it's easy to either transform into a clickable HTML page, or just for automating remotely or for automated admin notifications. I find it useful.

no news
Jun 10, 2004 from sean

No news right now, really. Just working on the site a little.

copyright © 2004 celtech software
the name "celtech software" and the green, three-berried logo
are trademarks of celtech software
page last updated Thu Jul 08 19:55:16 PDT 2004