James, I believe master on github has the code we were working with. In fact, here is our commit: https://github.com/ryandotsmith/queue_classic/commit/c71d0201e6d6f0e2b0f54e5082af41426b8aa0f8
I made a few doc-related commits after this one, so master should be what you remember.
Also, I got a fair bit accomplished on the plane home from RDRC2 regarding multiple queues. I had to do a fair bit of refactoring.... Some notable changes:
1) No more QC.enqueue QC.dequeue. We have to use QC::Queue.enqueue and QC::Queue.dequeue (etc...)
2) If you add a new queue, you must rake create_queue[queue_name] first. This creates the table and loads the locking function.
3) There will be a locking function for each queue.
Regarding #3
I fear that it might have violated the DRY principal. But, the locking function has references to the table everywhere. Perhaps I need to look at the plpgsql reference to see how I can pass in a parameter telling the function which table to work on. The more I think about it, there should definitely be a way to do something like this :
SELECT * FROM lock_head_on("jobs");
or
SELECT * FROM lock_head_on("priority_invoice_jobs"); etc...