Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
DRY Documentation between method and OptionParser
bwv549
6/7/2007 5:08:00 PM
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/b9a6985c1695531f/6ca8309210b85d72?lnk=gst&q=dry+documentation&rnum=1#6ca830...
but I'm not sure how I would apply it to the above situation!
Many Thanks :)
1 Answer
greg
6/8/2007 6:36:00 PM
0
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 <jtpri...@gmail.com> 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...
...
> but I'm not sure how I would apply it to the above situation!
>
> Many Thanks :)
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
DRY Documentation between method and OptionParser
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password