It seems hackish, but it works:
Inside permit!, wrap it with a begin/ensure block. When making test object, store the proxy object and the new temp object, and then in the ensure section, delete it.
I sent a pull request, 147.
The request doesn't change the indention of the code within the begin/ensure block to make the change easy to read, but I'll leave it to others to decide if the indention should be changed.