github.com/thoughtbot cleanup

Dan Croak

Like many of you, we’ve had a lot of code pass through our github.com/thoughtbot account and we’re in need of a little cleanup our projects.

Looking for a new home

We have not used some projects in a year or more and also do not know of any alternatives to point people toward. We’d like to find them good homes. If you’re interested in managing one of them, please email dan@thoughtbot.com.

thoughtbot/sortable_table allows you to click the header rows of HTML tables to sort the contents. We were never quite happy with the implementation and we typically question the need for the feature when a client requests it. We tend to find there’s a better UI we can provide to solve the need they’re trying to solve with sortable tables. We haven’t made a substantial commit to it in about 2.5 years. People may be using it: there are 160 watchers.

New home

tsaleh/ldap-activerecord-gateway is an implementation of an LDAP server which uses ActiveRecord as a data store. Tammer “Shoulda” Saleh is the new maintainer.

Deprecations

Some of our projects have been replaced by better libraries or their functionality was added by Rails. We’re deprecating them, which entails this announcement, updating the READMEs, and turning off Github Issues and Wikis for these projects.

thoughtbot/what provided boolean query methods on Mime::Type instances for the native Rails mime-types. We now use the respond_to method or the mobile_fu plugin and we recommend you do, too.

thoughtbot/when added :if and :unless conditions to ActiveRecord callbacks and validations and ActionController filters. It can still be used on Rails apps pre-2.1, but it has been built into Rails since the 2.1 release.

thoughtbot/capybara-envjs-fixes was a set of fixes to the capybara-envjs library during one of our earlier attempts at integration testing Javascript (the search for the Holy Grail). It was always intended as a temporary library. The Cucumber-Capybara-Env.js stack was full of code that was hacks piled on hacks piled on hacks.

Instead of capybara-envjs-fixes, we now use capybara-webkit on almost all our projects. It’s receiving a lot of interest from the community, with lots of good patches coming in. We’re actively maintaining it and recommend you give it a try for your integration testing stack.

thoughtbot/mile_marker was a project for visually setting expectations to clients during development, particularly for the staging environment. We haven’t used it since Rails 2.x and now simply use a “wip” CSS class when we need to accomplish the same goal.

thoughtbot/squirrel was a a Ruby-esque way of queryingSQL. ActiveRelation, named scopes, and projects like Searchlogic have since been released and are much nicer and more powerful.

thoughtbot/report_card generated a CI metrics report using metric_fu and notified Campfire. It was deeply tied to Integrity, which we no longer use. We must not have cared too much about the metrics, either, because we haven’t bothered to set up metric_fu again with Hudson. If you’d like to, check out the Hudson metric_fu plugin.

thoughtbot/quietbacktrace was a filtering mechanism for deleting extra line noise in Test::Unit backtraces. It was added to Rails 2.3.

thoughtbot/clearance-twitter was a Twitter OAuth library that played nicely with Clearance. Omniauth is the bomb and should be used instead.

Deleting forks

Some projects were forks where we needed to add additional functionality or fix bugs. We’re deleting those repos and mentioning them here with alternatives in case you were ever using one of our forks.

Ancestry allows the records of a Ruby on Rails ActiveRecord model to be organised as a tree structure (or hierarchy). It uses a single, intuitively formatted database column, using a variation on the materialised path pattern. We forked it to add Rails 3 functionality, which is now included in Ancestry. We still turn to this library when we need this functionality and recommend to others.

Friendly Identifier adds a human-readable identifier to ActiveRecord objects so they can be used in URLs. The original still exists on Google Code. We added a minor feature to it but now recommend norman/friendly_id instead.

Spawn provides a ‘spawn’ method to easily fork or thread long-running sections of code. This plugin works by creating new database connections in ActiveRecord::Base for the spawned block. We forked it to make it Rails 2.2 compatible. It is still an active project at tra/spawn, however we now typically use DelayedJob or Resque for background processing (DJ by default, Resque if we need multiple queues).