On Tue, 9 Sep 2003, Ryan Pavlik wrote: > On Mon, 8 Sep 2003 21:58:17 +0900 > Tobias Peters <tpeters / invalid.uni-oldenburg.de> wrote: > > <snip> > > > > I'd rather like > > method_info <<-DOC > > Create a new MyClass object giving optional defaults > > for "a" and "b". > > > > Category: constructors > > Parameters: > > * a: A: The "a" object; defaults to 5 > > * b: B > > DOC > > def initialize(a=5,b=B.new) ... end > > > > I.e. less punctuation, make your "Desc:" tag the default, get method > > name by overiding method_added > > Unfortunately there's nothing tying the method to the method_info > without telling it. Yes there is. method_added is what you need. See: >>>>>>>>test_method_added.rb>>>>>>>> METHOD_DOCS = [] class Method_Doc def initialize(data, klass) @data = data @klass = klass METHOD_DOCS << self end attr_accessor :method_name attr_reader :data, :klass end class Module def method_doc(data) @last_method_doc = Method_Doc.new(data, self); end alias pre_method_doc_method_added method_added def method_added(name) (doc = @last_method_doc) && (doc.method_name = name) pre_method_doc_method_added(name) end end class Example method_doc <<-DOC This does some serious init work DOC def initialize(a,b) @a,@b=a,b end end p METHOD_DOCS <<<<<<<<<<<<test_method_added.rb<<<<<<<<<<< $ ruby test_method_added [#<Method_Doc:0x4013f34c @method_name=:initialize, @klass=Example, @data="\t\tThis does some serious init work\n">] @klass info comes from Module#method_doc, @method_name info comes from Module#method_added > In a few cases, I've used this in subclasses > without any method redefinition, just to make the wordking more > appropriate. (This is used to generate various forms.) I cannot follow. Tobias