[#3741] Re: Why it's quiet -- standard distribution issues — Aleksi Niemel<aleksi.niemela@...>
I think it's the feature of the mailing list archive to create a threads of
[#3756] RE: XMP on comments — Aleksi Niemel<aleksi.niemela@...>
> require "xmp"
[#3766] modulo and remainder — Dave Thomas <Dave@...>
[#3776] Kernel.rand — Aleksi Niemel<aleksi.niemela@...>
How about defining:
[#3781] Widening out discussions — Dave Thomas <Dave@...>
[#3795] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> As matz said in [ruby-talk:3785] and Dave said in [ruby-talk:1229],
Hi, Aleksi,
[#3823] Re: Array.pick — Aleksi Niemel<aleksi.niemela@...>
> > Just a general comment--a brief statement of purpose and using
[#3827] JRuby? — Aleksi Niemel<aleksi.niemela@...>
Is there or will there be Ruby equivalent of JPython?
[#3882] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> |look too strange, confusing, or cryptic. Maybe just @, $, %, &.
Hi,
[#3918] A question about variable names... — Dave Thomas <Dave@...>
[#3935] If your company uses Pallets, Skids, Boxes, Lumber, etc. — pallets2@...
[#3956] Tk PhotoImage options — andy@... (Andrew Hunt)
Hi all,
[#3971] Thread and File do not work together — "Michael Neumann" <neumann@...>
following example do not work correctly with my ruby
[#3986] Re: Principle of least effort -- another Ruby virtue. — Andrew Hunt <andy@...>
> Principle of Least Effort.
Hi,
[#4005] Re: Pluggable functions and blocks — Aleksi Niemel<aleksi.niemela@...>
Aleksi makes a question:
[#4008] Ruby installation instructions for Windows — Aleksi Niemel<aleksi.niemela@...>
I had to write these instructions for my friends. I thought it might be nice
[#4043] What are you using Ruby for? — Dave Thomas <Dave@...>
On 15 Jul 2000 22:08:50 -0500,
Hi,
[#4057] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
Johann:
[#4082] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
[#4091] 'each' and 'in' — hal9000@...
I just recently realized why the default
[#4107] Re: 'each' and 'in' -- special char problem? — schneik@...
[#4114] Method signature - a question for the group — Dave Thomas <Dave@...>
[#4139] Facilitating Ruby self-propagation with the rig-it autopolymorph application. — Conrad Schneiker <schneik@...>
Hi,
[#4158] Getting Tk to work on Windows — "Michael Neumann" <neumann@...>
Hi....
[#4178] Partly converted English Ruby/Tk widget demo working. — Conrad Schneiker <schneik@...>
Hi,
[#4234] @ variables not updated within method? — Hugh Sasse Staff Elec Eng <hgs@...>
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 27 Jul 2000, Dave Thomas wrote:
[#4267] Ruby.next, Perl6, Python 3000, Tcl++, etc. -- Any opportunities for common implementation code? — "Conrad Schneiker" <schneiker@...>
Hi,
"Conrad Schneiker" wrote:
[ruby-talk:03897] Adding a '<<<' here_document syntax
Matz (and others),
I'm a Perl user who has been learning about Eiffel and has recently discovered
Ruby! I am very impressed with the excellent work on the language and it's
impressive implementation.
Much of my Perl work is for web development. I would like to convert to using
mod_ruby if possible. There is, however, one little piece of syntactical sugar
that I'd like to suggest and get your comments.
In Perl, I often use "here document" syntax in my code, but I have never liked
a few things about it:
1) It leaves leaves my code looking very ugly, with the terminators not
indented properly, as in:
# output the next row
print <<DONE;
<tr valign=top bgcolor=#$bgco>
<td width= 27 align=right >$coun.</td>
<td width=279 align=left >$titl</td>
<td width= 96 align=center>$info->{'date_a'}</td>
<td width= 96 align=center>$info->{'date_d'}</td>
</tr>
DONE
}
}
2) Also, I like to indent the actual HTML so my program is more readable, but
when I do this, the generated HTML has a bunch of leading whitespace which can
sometimes even cause problems... uck! To prevent the leading whitespace
problem, I usually do this:
# indicate if all forms have been filled out
print <<DONE unless $coun;
<tr valign=top bgcolor=#cccccc>
<th><br>You have completed all required forms.<br><br></th>
</tr>
DONE
# finish up list of assigned forms
print <<DONE;
</table>
</div>
DONE
}
}
but... the final result is hardly elegant looking.
To solve these problems, I developed a little mod_perl extension that
processes my source in a way that solves both of these problems. It's
implemented with a single regex in Perl like this:
s|<<<\s*(\w+)(.*?)\1|'<<'.($x=$1).(($y=$2)=~s/^[^\S\n]+//gm,$y).$x|goes;
Essentially, it defines a modified "here document" which uses the <<< syntax
(called the "chevron") and it does the following things:
1) lets me indent the end of my here document
2) trims all preceeding whitespace of the here document content
Thus, in the orginal code:
1) I can indent my "DONE"'s with the rest of the source code, and
2) The output HTML has the leading whitespace chopped off
Here's what the Perl code looks like now, with the chevron syntax:
# output the next row
print <<<DONE;
<tr valign=top bgcolor=#$bgco>
<td width= 27 align=right >$coun.</td>
<td width=279 align=left >$titl</td>
<td width= 96 align=center>$info->{'date_a'}</td>
<td width= 96 align=center>$info->{'date_d'}</td>
</tr>
DONE
}
}
# indicate if all forms have been filled out
print <<<DONE unless $coun;
<tr valign=top bgcolor=#cccccc>
<th><br>You have completed all required forms.<br><br></th>
</tr>
DONE
The end result of using '<<<' instead of the traditional '<<' is more readable
code. For web work, where I think Ruby can *really* shine, I think a simple
syntactical addition like this could really enhance its readability and the
overall elegance of the language with minimal (if any) impact.
I'm very interested to see your comments and those of others...
Thanks!
Steve Shreeve
S2S Solutions
http://s2s.org