Comment

Comment by wewewedxfgdf

It's the never ending "end"s that bother me about Ruby.

    class Mess
    def chaos(x)
        if x > 0
        [1,2,3].each do |i|
            case i
            when 1
            if i.odd?
                puts "odd"
            else
                puts "even"
            end
            when 2
            begin
                puts "trying"
            rescue
                puts "failed"
            end
            else
            puts "other"
            end
        end
        else
        puts "negative"
        end
    end
    end
Clear away all those ends and the program logic pops out. Much fresher!

    class Mess:
        def chaos(self, x):
            if x > 0:
                for i in [1, 2, 3]:
                    match i:
                        case 1:
                            if i % 2 == 1:
                                print("odd")
                            else:
                                print("even")
                        case 2:
                            try:
                                print("trying")
                            except:
                                print("failed")
                        case _:
                            print("other")
            else:
                print("negative")

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton