I've been in touch with Matt Sears, of the Matt Sears Todo.rb Gist fame, he tells me that he's been working on taco - a gem-ified version of todo.rb with tweaks and extra features.

Taco looks pretty neat. From the code, it looks like Matt's is moving towards alternative repos for taco's list - which will help with the cross-computer, mobile access requirements listed earlier. But the basics are all there.

Installing taco

The taco site recommends installing as a gem:

gem install taco

I couldn't get this to work, as it seemed to pull in an older version. I've reported it back to Matt, though it might be something stupid in my RVM setup. I don't feel in total control of RVM yet, but I'm learning (I am but a humble manager).

Installing from repo worked:

git clone git://github.com/mattsears/taco.git
cd taco
bundle install
rake build
rake test
rake install

As did adding it to a Gemfile:

source "http://rubygems.org"
gem 'taco', :git => 'git://github.com/mattsears/taco.git'

Using taco

Once installed, you can query taco directly, without any parameters:

$ taco

[1] Add an item!     empty
[2] Add an item!     empty

Help is in the logical place:

$ taco help

Usage: taco [options] [command]
Taco holds stuff in a shell

  add       Adds a new item
  del       Removes an item
  list      Prints all items
  init      Bootstraps tacos in this directory
  bump      Moves an item to the top of list
  settings  Moves an item to the top of list

    -h, --help                       Display this screen
    -v, --version                    Display the current version

Dupe in the 'settings' description there, but these are minor. Taco has what I expect from an app: sensible defaults and some form of navigation/support. No mention of the '@' tagging though, e.g.

taco add tidy desk @work

All the commands operate as you'd expect, though there are some quirks.

Taco automatically generates two empty items within your list:

$ taco

[1] Add an item!     empty
[2] Add an item!     empty

Add a new items wipes out one of the placeholder items:

$ taco add have breakfast
Added: have breakfast: @

[1] Add an item!       empty
[2] have breakfast

But doing it a second time doesn't:

$ taco add organise brain
Added: organise brain: @

[1] Add an item!       empty
[2] have breakfast
[3] organise brain

Minor. And easy to snip out:

$ taco delete 1
Deleted: Add an item!: @empty

[1] have breakfast
[2] organise brain

The bump and list commands are fairly self evident. There is a neat done command to mark tasks as complete, though it didn't work exactly as expected:

$taco done have breakfast
Done: organise brain: @done

[1] have breakfast
[2] organise brain     done

OK, my bad - you have to use indexes throughout. But it's not responding to garbage input. Minor, minor. The correct way to mark an item as done - or delete/bump it - is to use the item's index:

$taco done 1
Done: have breakfast: @done

[1] have breakfast     done
[2] organise brain

Taco's repo is in $HOME/.tacos.yml, so you can access your lists in any dir.

There's also a $HOME/.tacorc file for storing configuration data:

storage: 'yaml'
foo: 'bar'
1: '1'

I think I understand what the storage: property is for, but the rest look like some kind of index. I'm sure will be revealed as I get into the code.

Other links

Some useful Reddit comments:

metamorfos points us to us his rubdo project on Github. Use of Dropbox a great idea.

seyday points us to ditz on Rubyforge. Heavier tool than what I need right now, but one to come back to.

That's it. Spent enough time on this over the weekend and now it's time for the family.

Cheers folks -Tom

comments powered by Disqus