I hate to be the guy to start another { } vs. do end thread, but I
have some questions I would love to hear opinions on.
I use to just use the rule of { } for one-liners and do end for he longer stuff. However, I've recently switched to trying out { }
for the times when I care about the return value and do end for the imes the block is for side effects. For the most part, I do like the ew strategy, but sometimes I have trouble deciding which to use.
Let me give two examples that have made me stop and think.
First, tap() is Ruby 1.9 is a little tricky. I do care about the
return value, but not the return value of the block, so which strategy hould I use? It seems like do end is more correct, but that seems ot uglier in practice:
arr.sort.tap do |sorted|
p sorted
end.whatever
Another example is with a transaction() method for a database. When
using such a tool, I often end up with calls where I care about both
the side effects (transactional behavior) and the return value:
db.transaction {
db[:count] += 1
db[:count]
}
Any thoughts on how edge cases like this mesh with the block strategy?
James Edward Gray II