A
Albert Schlef
I have a function that generates some textual data that I capture into a
string:
def gen_data(output, ...)
...
output << "... some data ..."
...
end
s = ''
gen_data(s, ...)
I was wondering if instead it's possible to use a pattern similar to the
following:
def gen_data(...)
...
puts "... some data ..."
...
end
s = capture_output do
gen_data(...)
end
That's because I want to pass gen_data() as few arguments as possible
(to make the code look "clean". But also because my current code already
uses 'puts'. And also because I encountered this need several times in
the past and I'm curious.)
I notice that this last pattern has a problem: if some debugging code
uses 'puts' too, the output will be ruined. So I'm interested to hears
about similar patterns and not necessarily the faulty one I devised
here.
string:
def gen_data(output, ...)
...
output << "... some data ..."
...
end
s = ''
gen_data(s, ...)
I was wondering if instead it's possible to use a pattern similar to the
following:
def gen_data(...)
...
puts "... some data ..."
...
end
s = capture_output do
gen_data(...)
end
That's because I want to pass gen_data() as few arguments as possible
(to make the code look "clean". But also because my current code already
uses 'puts'. And also because I encountered this need several times in
the past and I'm curious.)
I notice that this last pattern has a problem: if some debugging code
uses 'puts' too, the output will be ruined. So I'm interested to hears
about similar patterns and not necessarily the faulty one I devised
here.