I had this task where I wanted to pull information from del.icio.us for some data processing so I decided to take a look at what was available for Ruby. Before, I say what path I took let’s go over the choices I dug up.
- BSD Licensed
- API really is simple
- Has a rubygem (Any serious ruby tool should be available via rubygems)
- Seems to require logging into delicious
- Only seems to manage a delicious user’s bookmarks
Next was mirrored which looks like it is modeled on Active Record.
- Acts like an Active Record Model (nice for Rails guys)
- Supports both del.icio.us and ma.gnolia.com
- Has a rubygem
- MIT-ish licensed
- A little more complex than ridiculous (counting # of classes)
- Only handles a logged in user scenario
- Requires logging in
Next up was this blog post that pointed to ruby-Delicious. However, when I clicked on the link I got a Forbidden. I love abandon-ware. I decided not to look much farther since the author obviously wanted to talk about something he didn’t think about maintaining.
What I wanted
What I wanted was something a little more full-featured like Python’s pydelicious library. It handled both cases of being logged in and wanting to update bookmarks AND just the lazy joe who wanted to yank data from delicious without having to stuff it into a data structure by hand.
In the end I ended up using none of the above since none of them did what I really wanted and after a little of Googling saw many snippets , ,  that showed how one could do it with just open-uri. In the end I decided to just use open-uri since it ended up being a big fat 3 lines of code to implement the base case of what I wanted with open-uri. With a few more lines I had exception handling and retrying on failure.
However, hopefully someone else will be able to make use of the above libraries since they do like quite useful for programatically accessing delicious.