File.write a long line

M

Mk 27

I notice you can do this with print:

print "blah blah",
"and so on"

but not with File.write, except

file.write "blah blah /
and so on"

which is no good cause it includes all the whitespace. I guess I can
live with

file.write "blah blah"
file.write "and so on"

but I thot I'd check and see if there is not some wierd combination of +
, / etc that would allow me to break the line, as I imagine the same
logic will apply in other ruby methods.

Thanks in advance! Ruby seems very nice, I am happy.
 
R

Robert Klemme

I notice you can do this with print:

print "blah blah",
"and so on"

but not with File.write, except

file.write "blah blah /
and so on"

which is no good cause it includes all the whitespace. I guess I can
live with

file.write "blah blah"
file.write "and so on"
but I thot I'd check and see if there is not some wierd combination of +
, / etc that would allow me to break the line, as I imagine the same
logic will apply in other ruby methods.

You can do

file.write "blah blah " +
"and so on"

file.write "blah blah " \
"and so on"


I myself use these rules of thumb to decide which method to use:

1. printing of text: puts, print, printf
2. output of binary or chunked data: write

E.g. for copying data from one file to another, I'd do

buffer = ""
while io1.read(1024, buffer)
io2.write buffer
end
Thanks in advance! Ruby seems very nice, I am happy.

Good!

Kind regards

robert
 
B

Bertram Scharpf

Hi,

Am Sonntag, 17. Mai 2009, 06:00:04 +0900 schrieb Robert Klemme:
file.write "blah blah " +
"and so on"
file.write "blah blah " \
"and so on"

Maybe here documents?

file.write <<EOT.chomp
blah blah \
and so on
EOT

Bertram
 
M

Mk 27

Bertram said:
Maybe here documents?

No, just to save a little bit of typing a line with a bunch of long
object.hash[key] variables in it. But since the logic must applies to
other methods, I figured I might as well start "saving" now.

Anyway, it seems the + version works but the / ignores the next line if
the quotes are closed.
 
R

Robert Klemme

2009/5/17 Mk 27 said:
Bertram said:
Maybe here documents?

No, just to save a little bit of typing a line with a bunch of long
object.hash[key] variables in it. =A0But since the logic must applies to
other methods, I figured I might as well start "saving" now.

Anyway, it seems the + version works but the / ignores the next line if
the quotes are closed.

Note that for the continuation you need a bachslash "\" and not a
forward slash "/"! The difference between the two variants is that
the continuation forms one long string while the plus version creates
several strings which are combined at runtime. It seems that in your
case the version with "+" may be better as you seem to pull your
strings from somewhere else (i.e. they are not constant). Can you
show the real code?

Cheers

robert

--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,173
Messages
2,570,937
Members
47,481
Latest member
ElviraDoug

Latest Threads

Top