I don't have anything overly helpful to the discussion to add; but I wanted
to add one thing to this:
We usually write an optional argument in a line: def print_summary(out = $stdout)
While I concur in general, I myself have experimented a little with layout
such as:
def foo(
a = 'foo',
b = 'bar',
)
The reason was primarily because it is, for my bad eyesight, easier to assess which
arguments are used; I only have to look at the left hand side mostly. Makes it easier
for me to keep track what is going on.
This may be a rare layout perhaps, but coming from this, I understand where Samuel
is coming from (but this is not me saying anything pro or con on the suggestion
itself; I really only wanted to comment on spaced-out optional arguments).
On a side note that may not be very relevant either, one can add strings to ')'
such as:
def foo(
i = 'bar'
)"hello world!"
puts i
end
foo
:-)
I don't even know if that is a bug or a feature or something totally irrelevant.
I just found it funny and golfing-worthy (even though I am a horrible code golfer).
Almost a bit like python doc strings! :D