Заполнение и сортировка массивов

Домашнее задание по Руби.

Выполнил Андрей, 5 класс.

Run.rb

require_relative 'sort.rb'
runners = []
names = []
for i in (1...10)
  puts 'Во сколько прибежал ' + i.to_s + ' \'й участник?'
  puts 'Введите в дату в формате дд.мм.гггг чч:мм'
  str = gets.chomp
  time = Time.mktime(str[6..10].to_i, str[3..5].to_i, str[0..2].to_i, str[11..13].to_i, str[14..16].to_i)
  runners.push(time)
  puts 'А как его звали?'
  name = gets.chomp
  names.push(name)
end
class dateSort
  def sort(a, b)
    if ((a.year - b.year) == 0)
      if ((a.month - b.month) == 0)
        if ((a.day - b.day) == 0)
          if ((a.hour - b.hour) == 0)
            return a.min - b.min
          else
            return a.hour - b.hour
          end
        else
          return a.day - b.day
        end
      else
        return a.month - b.month
      end
    else
      return a.year - b.year
    end
  end
end
sort(runners, dateSort.new)
names.sort!
puts "Лучший результат показал #{names.first}: : он прибежал в #{runners.first.inspect}"

Sort.rb

class Standart
	def sort(a, b)
		if(a == b)
			return 0
		elsif(a < b)
			return -1
		else
			return 1
		end
	end
end
def sort(arr = [], obj = Standart.new)
	for(i in 0..arr.size)
		a = arr[i]
		if(true)
			b = arr[i + 1 or 0]
			my = obj.sort(a, b)
			if(my == 0)
				next
			elsif(my > 0)
				arr[i + 1 or 0] = a
				arr[i] = b
			elsif(my < 0)
				if(true)
					c = arr[i - 1 or arr.size - 1]
					arr[i - 1 or arr.size - 1] = a
					arr[i] = c
				end
			end
		end
	end
end

Author: Зойкин М. В.

Зойкин Максим Валерьевич 2010 - 2020
Пенза, Заречный