From: greg Date: 2007-06-09T03:35:51+09:00 Subject: Re: DRY Documentation between method and OptionParser rdoc has a :include tag that will allow you to include another file. So generate your documentation with a rake task and then include that file into RDoc task :foo_doc => "foo.help" do sh "rdoc" end file "foo.help" => "foo.rb" do sh "ruby foo.rb -h >foo.help" end $ cat foo.rb # This is the foo class # # Usage: # # :include: foo.help # On Jun 7, 12:10 pm, bwv549 wrote: > I suspect that lots of folks have run into this very problem: > > I have a method. It has lots of options. I need a command line > program that will give users command line access to run the method. I > can use OptionParser to parse the command line options into a hash and > give this hash to my method, like this: > > # The method: > def my_method(arg1, arg2, *opts) > ... > end > > # The command line interface: > opts = {} > parser = OptionParser.new do |op| > op.banner = "usage: progname.rb arg1 arg2 [OPTIONS]" > op.on("-f", "--first", Float, "this is the first option") {|v| > opts[:first] = v } > op.on("-s", "--second", Array, "second option is an array") {|v| > opts[:second] = v } > end > parser.parse! > my_method(ARGV, opts) > > I'm trying to figure out the DRY way to document these options, since > they will all be identical. OptionParser documentation is in the code > and that's great, but how do I embed documentation in the method that > also can end up in OptionParser documentation. Any ideas? (This > situation comes up frequently in my work, or I wouldn't ask) > > I've read through this post and it looks helpful (albeit fairly old > [will it still work]):http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/b9... > but I'm not sure how I would apply it to the above situation! > > Many Thanks :)