A annoyance with the insert todo -macro and ruby is that if the cursor is indended when using it it places the =begin and =end tags at the current level. The problem is that ruby only regognizes them at the start of the line.
So this works:
if true puts "foo" =begin TODO: =end end
But this doesn't work:
if true puts "foo" =begin TODO: =end end
I haven't had the time to look at the insert-todo code too much so I can't provide a patch, but the correct behaviour would be to make sure that there is no whitespace before the comment block tags.
(IMO is rather silly of ruby that block comments can't have whitespace before the =begin and =end tags...)