[#4567] Re: What's the biggest Ruby development? — Aleksi Niemel<aleksi.niemela@...>

Dave said:

18 messages 2000/08/23
[#4568] Q's on Marshal — Robert Feldt <feldt@...> 2000/08/23

[#4580] RubyUnit testcase run for different init params? — Robert Feldt <feldt@...> 2000/08/25

[#4584] Re: RubyUnit testcase run for different init params? — Dave Thomas <Dave@...> 2000/08/25

Robert Feldt <feldt@ce.chalmers.se> writes:

[#4623] Re: RubyUnit testcase run for different init params? — Robert Feldt <feldt@...> 2000/08/28

On Sat, 26 Aug 2000, Dave Thomas wrote:

[#4652] Andy and Dave's European Tour 2000 — Dave Thomas <Dave@...>

24 messages 2000/08/30
[#4653] Re: Andy and Dave's European Tour 2000 — matz@... (Yukihiro Matsumoto) 2000/08/30

Hi,

[#4657] Ruby tutorials for newbie — Kevin Liang <kevin@...> 2000/08/30

Hi,

[ruby-talk:04344] Re: DRY and embedded docs.

From: Dave Thomas <Dave@...>
Date: 2000-08-08 13:18:22 UTC
List: ruby-talk #4344
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:

> If I have a here document in some ruby program:
>... 
> How can I get this text into a 
> =begin
> =end
> section so I can have it as documentation, without breaking the
> Don't Repeat Yourself rule?
> .....

And a darn fine rule it is too.. ;-)

This is kind of tacky, but it does work--both rd and the program can
access the same explanatory text:

     def usage
       copying = false
       while DATA.gets
         break if /^=end/
         if /^=begin/
           copying = true
         else
           print if copying
         end
       end
     end

     usage() unless ARGV.length >= 2

     puts "Body of program..."

     __END__
     =begin

     Here is my documentation.

       prog  [ option ... ]  file1 file2

     Options:

      -a   all
      -b   before
      -c   change

     =end


Now, I just had a thought... Wouldn't it be neat if rdtool had an
option that did just this, so you could say

     RD::usage

and it would format up the text neatly for you?



Dave

In This Thread