I think you could extend Object to define something working like this:

comment "Doubles the number"
params :n => "Number to be doubled"
def double(n)
  n * 2
end

Object could define 'comment' and 'params' and other metadata functions
(or annotations, it's just symantics) to store those values and apply
them to the next  method defined.

Maybe I'll try and whip it up tonight?
  .adam sanderson