Josh, I have not looked into the details of your framework, but why not simplify the DSL to:
path 'blog' do |id|
@blog = Blog.get(id)
get { halt @blog }
put { @blog.update(request.params); halt :ok}
end
Why do you need the var call within the block? Also, you seem to break the ruby convention of using do end for blocks larger than one line, in many of your examples.(Again, I spent three seconds on your site, so you may have a solid reason for this and have explained it already as well.)