[#1026] Is this a bug? — Dave Thomas <Dave@...>

18 messages 2000/01/03

[#1084] Infinite loop — Dave Thomas <Dave@...>

17 messages 2000/01/11

[#1104] The value of while... — Dave Thomas <Dave@...>

24 messages 2000/01/11

[ruby-talk:01072] Re: Here docs not skipping leading spaces

From: Dave Thomas <Dave@...>
Date: 2000-01-08 05:28:08 UTC
List: ruby-talk #1072
Yasushi Shoji <yashi@yashi.com> writes:

> > 4. The whitespace at the start of the first line in the here document
> >    determines the number of spaces to remove from this and subsequent
> >    lines. Tabs are assumed to align on 8n+1 boundaries. The terminator 
> >    may appear at any indentation.
> 
> I think Ruby should keeps the current behavior. 

Well, one of the benefits of passing the text through transparently is 
that you don't lose any information. This means that you can always
write helper functions to achieve the effect you want. For example


     # Strip leading whitespace using Dave's option 4
     # Ignores tabs for now

     def sl(lines)
       return lines if lines !~ /^\s+/p
       toStrip = Regexp.new "^\\s{1,#{$&.length}}"
       p toStrip
       lines.gsub(toStrip, '')
     end

     print <<-DAVE, sl(<<-MATZ)
        Now is the time
           for all good men
           to come to the aid
        of the party

        DAVE
           Then was a time
        and a fine time it was
           when parties were there
              for the taking
        MATZ

  
So, I take back the suggestion :)


Dave

In This Thread

Prev Next