Mocha is a feature-rich JavaScript test framework running on node and the browser. Along with the Chai assertion library they make an impressive combo. PhantomJS is a headless WebKit with a JavaScript/CoffeeScript API. It has fast and native support for various web standards like DOM handling, CSS selectors, JSON, Canvas, and SVG.

The mocha-phantomjs project provides a script file and extensions to drive PhantomJS while testing your HTML pages with Mocha from the console.

MiniTest Spec Rails

The minitest-spec-rails gem makes it easy to use the MiniTest::Spec DSL within your existing Rails 2.3, 3.x or 4.x test suite. It does this by forcing ActiveSupport::TestCase to utilize the MiniTest::Spec::DSL.

Rails SQL Server

The SQL Server adapter for rails is back for ActiveRecord 2.2 and up! We are currently passing all tests and hope to continue to do so moving forward. Includes tons of new features including unicode column support, pessimistic locking, date/time column casting, DDL transactions and way more.

The TinyTds gem is my first ruby C extension. It provides a fast, efficient and native interface to FreeTDS. This provides SQL Server users with the first low level connection mode that properly handles client db encoding, ruby primitives, and string encodings under 1.9 and up.

Less-Rails & Less-Rails-Bootstrap

When Twitter’s Bootstrap was first released, I decided to give it a try and I assumed there was support in the Rails asset pipeline for it. I was mistaken. Even thought Tilt under Sprockets could render less files with the less.rb and therubyracer gems, there was no easy way to hook up the less load paths in a single place. Nor was there a way to expose helpers familiar to those using sass-rails like asset-data-url. Thus was born these two gems. Both leverage Rails::Engine or Rails::Railtie models that hook into the low level internals of the Rails boot process to hook into the asset pipeline. I even take advantage of therubyracer to add functions to Less.js that hook right back into Ruby!

GroupedScope Plugin

GroupedScope aims to make two things easier in your ActiveRecord models. First, provide a easy way to group objects, second, to allow the group to share associated object via existing has_many relationships. See installation and usage for more details.

Capistrano: Remote Shared Cache Strategy

This class greatly speeds up deploy times to multiple hosts by only updating your latest source code to a shared location accessible to all other servers. For instance, if you have 5 app servers in your cluster then the code update only happens with the primary or first server while all others use the shared cache to copy from. The remote shared cache can be updated by either a direct SCM export or a local export copy to target host. Notables on this project include:

HomeMarks: Simple Bookmark Start Page

HomeMarks was my first rails project when I was both learning to program in both Ruby and JavaScript. It allows you to create a simple bookmark start page that organizes links into colored boxes sorted in columns. A common practice by all early web developers I knew, this time you do not have to code your own HTML.

HomeMarks went thru its third rewrite a few months ago for Rails 3 and is currently deployed on Heroku. I also recently just finished my first native Objective-C iPhone app too. I am currently working on the native iPad version and will post updates here too. When that happens I will rewrite the rails application a 4th time using CoffeeScript & Spine.js.