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.
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'
Once installed, you can query taco directly, without any parameters:
$ taco
TACOS:
--------------------------
[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
Commands:
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
Options:
-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
TACOS:
--------------------------
[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: @
TACOS:
----------------------------
[1] Add an item! empty
[2] have breakfast
But doing it a second time doesn't:
$ taco add organise brain
Added: organise brain: @
TACOS:
----------------------------
[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
TACOS:
-----------------------
[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
TACOS:
---------------------------
[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
TACOS:
---------------------------
[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.
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