Ruby: Условные конструкции

Условия в Ruby выглядят похожими на условия в других языках:

def sentence_type(text)
  # проверяем последний символ в строке
  if text.end_with?('?')
    'question' # снова нет return
  elsif text.end_with?('!')
    'exclamation' # и тут
  else
    'statement' # и тут
  end
end

sentence_type 'anybody here?' # question
sentence_type 'Hexlet for humans' # statement
sentence_type 'boo!' # exclamation

В Ruby условиям не нужны скобки. Выражения пишутся сразу после ключевого слова if. Для дополнительных условий используется ключевое словое elsif. И для всего остального — привычный else.

В примере используется предикат (функция, возвращающая true или false) end_with?(). Ключевое отличие Ruby от других популярных языков — в использовании знака вопроса на конце, вместо is и его аналогов в начале. Этот подход перекочевал из Lisp-языков.

Задание

В Ruby встроен оператор <=> (spaceship). Этот оператор удобно использовать в функциях сортировки для определения того, нужно менять местами два соседних элемента или нет. Всего у функции возможны три разных варианта возврата:

1 <=> 1 # 0 числа равны
2 <=> 1 # 1 левое больше правого
1 <=> 2 # -1 левое меньше правого

Вашей задачей в этом задании будет написать функцию compare(), которая ведёт себя так же, как и spaceship-оператор:

compare(1, 1) # 0 числа равны
compare(2, 1) # 1 левое больше правого
compare(1, 2) # -1 левое меньше правого

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе