RubyFlow : The Ruby Community Blog

Home   Submit   Sign Up   Log In   leaders   Twitter   RSS Feed  

trans — 44 posts

Recent Releases from Rubyworks
* Facets 3.0.0
* ANSI 1.5.0
* RSpec On Tap 0.3.0
The Instance Gem
Just wanted to let Rubyists know about a new Ruby Facets spin-off project called Instance. The instance gem is an object reflection library --a library which ensures access to an object's state. Essentially it provides all `instance_` methods, and a few others, through a single interface method. Note the `instance.rb` file will no longer be included in the next release of Facets.
Turn, the MiniTest Reporters project, is no longer being maintained, as the original developers have moved on to other priorities and do not have the time to devote to it. Total reign over the project is open to any developer who would like to carry it forward. If no one takes up the project, it will be left to wither and die. That's okay. That's life. But it's a solid project that's certainly deserving of a new lease on life if anyone wants to pick it up.
Good documentation is so under-addressed by most developers that we really have to roll out the bright lights when someone comes along and takes up the time consuming mantle of documenting an API in complete detail. This is exactly what happened with Radix this last month. A coder going by the unassuming handle, douglascodes, announced his desire to document Radix and proceeded to do so until YARD pronounced 100% completeness. Hey, we think that is worth of a whole version bump and a big shout-out for Douglas. Thank you, Douglas!
Aficionados of simplicity, allow me to introduce you to my new command-line interface option parser, CLI.K. Based on Michel Marten's excellent Clap library, CLI.K takes the code a few steps further by supporting multiple options per definition, single letter "run-on" options and, clearly the most fetching of features, a simple call to the private Kernel method #cli handles it all.
Attention all TomDockers
New versions of yard-tomdoc and it's trusty underbelly tomparse have been released. Both are much improved over previous releases, including some great new features. The YARD plug-in, for instance, supports many of YARD's tags via section labels, and is ahead of the game for Ruby 2.0 with a newly supported Options section. That's right. We are not afraid to venture into "unofficial" doc space! Doc 'til you drop and enjoy!
Counting on Radix
Get your kicks in Base-Six? That's not enough? Why then, Two-Fifty-Six! And so you can, with a little gem, called Radix. Yes, a new release of Radix is out. This release of fixes a couple of those annoying things called bugs. Link up: github, gem and api. And have fun!
OpenStruct 2
I just launched ostruct2 gem intended as drop in replacement for Ruby's standard ostruct.rb library. The original OpenStruct class has some short-comings, such as name conflicts with built-in methods. OStruct2 improves upon the original by subclassing BasicObject to ensure a clean slate and adds some additional niceties such as support for Enumerable. This is v0.1.0. I'm sure it needs a little bit more work to be complete (e.g. #hash and #dup methods are probably unavoidable), but all the primary functionality is green.
Turn 0.9 was released yesterday. It addresses all the issues users have reported since the previous 0.8.2 release including full backtrace support, test skipping and the bundle exec autorun problem. All good news.

Unfortunately, these changes have also forced two significant changes for end-users. First, Turn no longer supports TestUnit at all. For the 0.9.x series, Turn will only support MiniTest. Second, the require statement in test helpers script must be changed from require 'turn' to require 'turn/autorun' --necessary because Bundler tries to load everything in it's Gemfile by default.

Turn 0.9 probably won't be on the scene long. The upcoming 1.x series will be a complete rewrite and is nearing completion as I write this. In the mean time Turn 0.9 should still provide its users plenty of improved, colorful test output.
I just released an npm package called rundown. It is an RDoc document parser for Javascript/Node.js. The project is in it's infancy and being built piecemeal by converting the showdown.js Markdown library to handle RDoc format. So far I have implemented support for headers and links. This will be a very contributor oriented project. If you think this project useful and have the skills, please help implement missing features. Thanks.
Turn to Tap Out
The wheels on the Turn bus aren't going quite so round and round. So I decided to score my own ride. Checkout TapOut, a TAP-Y/J consumer reporting tool, and MiniTap, a TAP-Y/J reporter for MiniTest. It's like one of those uber-cool kit cars your neighbor's son uses to pick up the chickies. Of course, like all good mechanics, we're still tweaking the engine a bit --mainly the current set of report formats are riding a tad thin and rough, but they'll be polished up as time permits (feel free to grab a wrench). Peace out.
As of this morning, RDocodile is no more. The Ruby community showed the barest of interest in the work. Less than seven individuals took watch of the projects on GitHub. I suspect the lack of interest stems primarily from the rise of RDoc's main competitor, YARD. I had hoped RDocodile would give some invigoration to RDoc, but the maintainer of RDoc itself gave cold reception to the whole endeavor. So I have decided to end development completely. It might seem rather unfortunate, such a large amount of good work going up in smoke, but I'm not bothered by it. Failures compose the soils of success. Instead of looking back, I look forward. And I see even better documentation pastures on the horizon.
In my earnest attempts to make RDocs more aesthetically pleasing and to work towards more practical documentation interfaces, I have transformed my previous RDazzle project into RDocodile, Ruby Beautification Project.

The project has come a long way, and can presently serve up some very attractive RDocs. But it is also far from complete. The future holds customizable themes, improved UI interactions, maybe a PDF format, among other plans. It's a fair amount of work. So all heroic volunteers are welcome. Take over a format, add a new format, help improve the underlying framework, dig into the CSS, whatever you like. It's all here to take RDoc to the next level.
LOCat - The Cat's Meow
Just released v0.1.0 of LOCat, a fancy-schmancy LOC analysis tool. I've had a very simple script for this in my utility belt for a long time now. I finally got around to taking it out and making it the "Cat's Meow". Have fun and please report any issues --this is an 0.x release after all. Here lies the homepage, an example and the source code.
XDG 2.1.1 - New API
New release XDG is out. The 2.x series has brand new API (and thus is not compatible with the previous versions). The new API is more intuitive in that it resembles access to the environment variables, e.g. ENV['XDG_CONFIG_HOME'] -> XDG['CONFIG_HOME']. Have a look at the QEDs.
DNote 1.6: Get Some Context
Just released a new version of DNote (github). This release allows you to output context with your notes. Just select the number of contextual lines to include via the -c option. Currently only HTML, YAML and JSON output formats support context --other formats will gain support in the future. Note that the old -c option for --custom has been capitalized to -C.
ANSI 1.2.4: Lining up the Columns
New version of ANSI library now officially supports columns.
Check it out and gem install ansi.
Just released a new version of AE, aka Assertive Expressive, a modern assertions system that can be used with any test framework. This release improves the API by moving AE's Assertion and Assertor classes into the AE namespace where they belong. It also improves how test frameworks tie into AE, doing away with the use of Kernel extensions for the purpose, and utilizing a toplevel constant (Assertion) to dynamically reference the exception class used by a test framework to raise assertion errors.
Radix will convert!
I just released Radix v2.0. The new version is a nearly-complete overhaul of the old version, with much improved and more intuitive support for base conversions via Radix::Integer, Radix::Float and Radix::Rational.
Well, here's RagTag
I just launched RagTag v0.6, a TAL XML/HTML template system for Ruby. RagTag is actually a re-branding of an older project called, RTals. The new version simplifies the API a bit and uses Nokogiri on the back-end instead of REXML, so it's pretty fast.
Hashery 1.3.0 has hatched.
I just pushed Harshery v1.3.0 to the gem server. The new version fixes a bug in CastingHash and adds a new library, PropertyHash, which is simply a Hash with a limited set of keys.
Neapolitan Multi-Templates
Markdown's great, but where's the table support? Textile handles tables, but wait... no indented pre? And do any of them support syntax highlighting? Why pick and choose, when you can have it all? Neapolitan delivers all your favorite template flavors (erb, markdown, textile, coderay, etc.), in a single easy to read and write document format. How does it do this? Via the magic of Malt.
Ruby Load Wedges
I'd like to introduce you to Wedge, a library for creating Ruby "load wedges" that safely override #require and #load. Wedge gives you complete flexibility in creating any kind of loader. Wedge comes with two built-in wedges: the Ruby Wedge and the Gem Wedge, both of which are used to circumvent name clashes between libraries. Also checkout gem-wedge which turns Wedge's Gem wedge into a RubyGems plugin.
Today's fun is Malt (though maybe not as fun as the liquor). Malt is multi-template rendering engine. What's that? Yes, yes, like Tilt. But, you see, I had some problems with Tilt's consistency across different formats, and though I tried to contribute back to Tilt, it was happen'en. You know how it goes. So, I wrote a whole new, much more "OO", library. It's an early version yet, v0.1.0, but her test batches all run green (at least on 1.8.7). She ought to go down pretty good. Go ahead, enjoy a cold one on me.
Have you seen my Platypus? He was around here somewhere. A little horse told me he could do method overloading, pseudo-classes and double-dispatch type conversion. That's fun. Next time someone asks for these, you can scrap the goose gander and just send him out for Platypus steaks --well done.
Radix 1.1.0
Just released a new version of Radix, the base conversion library. The new version adds a Radix::Number class so numbers in alternate bases can be handled much more easily. Checkout the QEDoc on it to get the idea. The new class is still rather nascent, only supporting integer values and the most basic math operators, so if anyone is keenly interested, please feel free to dive in and help beef her up.
VCLog v1.6
I just launched a new version of VCLog. I'm very excited about this release --I feel it's nearly finished (well, in so far as any program can be said to be finished). This new release adds sexy ANSI color and uses customizable heuristics to categorize commits. Very cool stuff.
DNote 1.3
I just release DNote 1.3 (website). This new version adds support for other languages besides Ruby. Simply supply a -m option to the command line. For example, to scan your C code: $ dnote -m '//' *.c. In the next release I'll look at adding an option to automatically map file extensions to comment markers. But -m was a quick implement, so I wanted to go ahead and get it out there. Have fun!
English 0.6
I released English v0.6.0 yesterday. The API is looking pretty sweet. I'm quite happy with it. Most of the changes were under-the-hood, including a new dependency on the spun-off Language gem, but be sure to check out the Wiki for some helpful tips.
ANSI 1.2 Ruby Library
The ANSI library keeps getting better. I just launched version 1.2.1.
The GitHub repo is here. Probably the most useful new feature is the addition of the String#ansi method which makes it even easier to add ansi codes to output. For usage documentation be sure to check out the QED documents.
Kite is a tool for hosting static websites in the cloud. More specifically, you use kite to sync your site files up to a cloud-based datastore, like Amazon's S3, and then use Kite's tiny Sinatra webapp to serve the files.

I originally created Kite with the idea of hosting large static sites thru Heroku. However, I won't be using it after all. But I figure it might still be useful to others, so I am posting this to put the project up for adoption.
Just released Paramix v2. I have to thank Jonathan Rochkind for striking up a conversation with me concerning the project. Our dialog sparked a complete redesign and I have to say, the new implementation is damn near perfection.
WebRI, RDoc Seuss
WebRI 1.2 is now up on the servers. WebRI is a smart front-end for RDoc that provides a large selection of generators/templates for your documenting pleasure. The design is super-sexy so it's easy to create new templates if you want to contribute to the project. Big thanks to Володя Колесников for SDoc which I used as a study guide for getting my head around hacking RDoc. (It also explains the existence of the blackfish template).
Seeing as it is my birthday, I'll go ahead and make a second release today. This one is for QED a test framework using literate programming techniques. QED make test-driven functional testing as easy eating pudding pie. This new release utilizes Tilt to convert documents to HTML which are then processed by the test runner, allowing QED to support many new markup formats. And, yes, we eat our own dog food pie. Check it out.
New Stash
Just pushed a new version of Stash, a Hash with indifferent key access. All Stash keys are stored as strings so they can be garbage collected. Stash is also useful if you need a custom Hash-a-like object with special key restraints. Just override the #convert_key method in your subclass.
New manifest generator
I just released Mast v1.2. Mast is a really nifty manifest generator and comparison tool with a unique ability to store generation options in the manifest file itself. This release addresses some minor issues from the previous release.
/Reg/ against your machine
Pleased to report the grand release of a small command-line tool, regex, which makes for some pretty dirt-simple utilization of Ruby's regular expression engine via the command shell. It can do single or repeat matches and output can be in plain text, YAML or JSON formats. Still pretty fresh off the block, but it'll beef up in capabilities over time.
Rad DCI Architecture Talk
I recently popped off a quick blog post about an awesome lecture on the concept of DCI architecture that I've been watching. This looks very promising and I'm guessing other Rubyists will be interested too. Check out my comments and jump from there to the video.
DNote 1.1
Just released DNote v1.1. DNote is a command-line tool for scanning Ruby source for developer's notes and laying them out in the format of your choice. This release adds a few extra formats and improves upon the underlying implementation.
WebMe 0.4
Just launched WebMe 0.4. This is very easy to use app for converting a project's README file into a fancy project website. Use the site as is or use it as a starting point for building a better site. It supports a number of features including a pluggable template system. Check it out. Also, for a short time there's a small bounty for new templates that make the current lot look like amateur hour.
I just launched Ruby Setup 5 (aka setup.rb). Ruby Setup is a fork --or perhaps more appropriately called a "torch", of Minero Aoki's setup.rb 3.4.1. Version 5 is major re-implementation of the system. Primarily the new system organizes the code into proper OOP structure, and uses an aggregate-and-process procedure instead of the previous traverse-and-process procedure.
Lemon Unit Testing Framework
I just released v0.6 of Lemon, a unit testing framework that enforces a one-to-one correspondence between test cases/units and classes/methods. While still an early development release, it's quite usable. And I'm curious to find out what others think of the approach.
With the soon to be released 2.5 version of Ruby Facets. I decided to start a series of posts on all the good stuff within. It starts here.
This Old Hash is finally getting some bloggy goodness going. In classic transtyle, how about this one: "The Hash may well be the most used class in Ruby. Sure, our programs have arrays and strings galore, but they generally come and go without much ado. Hashes on the other hand get *used*..." Jump Here.