Hacker News new | ask | show | jobs
by pansa2 583 days ago
Nobody ever likes my suggestion to write them all on one line. I thought it was neat - the length of the word `end` makes it line up perfectly with 4-space indentation:

    class HtmlTransform
        class Code < Base
            def markdown
              "`#{node.text}`"
    end end end
1 comments

I think it's pretty easy to see why people would dislike it, with each on their own line and indented, it's very easy to track what ends where. With this version, not so much, if you're e.g. five nests deep and then see three end statements on one line.
I think this is fine - I don't see why having the `end`s on separate lines would make it easier to understand:

    if ...
        if ...
            if ...
                if ...
                    if ...
                        x = 1
            end end end
            y = 2
    end end
When I see such code I chukle... Really? I always try to make my code as flat as possible, either using next or break (or split to function and use return). Thats why I sometimes miss goto. But case can emulate it pretty fine.