Покажите мне код на Ruby

Давайте создадим класс c названием Person, с именем и возрастом. Мы протестируем наш код, создав несколько его объектов - людей, и рассмотрим их.

   class Person
     attr_accessor :name, :age

     def initialize(name, age)
       @name = name
       @age  = age.to_i
     end

     def inspect
       "#@name (#@age)"
     end
   end
   
   p1 = Person.new('elmo', 4)
   p2 = Person.new('zoe', 7)
   
   p1               # -> elmo (4)
   p2               # -> zoe (7)

А сейчас создадим массив объектов этого класса, зачитав имена и возрасты людей из файла со следующим форматом:

   bert:    8
   cookie: 11
   elmo:    4
   ernie:   8
   zoe:     7

Программа использует регулярные выражения, чтобы анализировать строки входного файла, и создает новый объект класса Person для каждого срабатывания регулярного выражения. Объект помещается в конец массива people.

   people = Array.new
   
   File.foreach("ages") { |l|
     people << Person.new($1, $2) if l =~ /(.*):s+(d+)/
   }
   
   people       # -> [bert (8), cookie (11), elmo (4), ernie (8), zoe (7)]

Теперь отсортируем результаты по возрасту. Сделать это можно по-разному. Можно определить блок, который задает способ, как сравнивать два объекта класса Person(т.е. двух людей):

   sorted = people.sort { |a,b|
      a.age <=> b.age
   }
   sorted        # -> [elmo (4), zoe (7), bert (8), ernie (8), cookie (11)]

Другой способ - изменить метод сравнения в классе Person:

   class Person
     def <=>(other)
       @age <=> other.age
     end
   end
   people.sort   # -> [elmo (4), zoe (7), bert (8), ernie (8), cookie (11)]