Enumerable

Enumerable is worth your time to learn. It’s very useful to solve all business logics. Without knowing it well, you end up re implement what comes with Ruby. If you don’t know select, you will implement a slow version of select. Ruby 2.7 has a new method called filter_map, without filter_map, we would probably use select + map or map + compact. Yes. The built-in methods are always faster than the one we wrote.

each + delete can be replaced by delete_if.

array = [
  [1, 2],
  [3, 4],
  [2, 1],
  [4, 3],
]
array.sort_by { |x| x[1] }.reverse.sort_by { |x| x[0] }

or you would do

array.sort_by { |element| [element.first, -element.last] }

But it could be simpler:

array.sort_by { |(x, y)| [x, -y] }

Enumerable#lazy

File.open("a-huge-file") do |file|
  file.lazy.each_slice(2000) do |lines|
    # ...
  end
end