Оператор === (тройное равно) в Ruby называется оператором проверки принадлежности (case equality operator).
Он используется в выражениях case/when и определяется классами для проверки, принадлежит ли правый операнд "категории" или "диапазону", представленному левым операндом.
Поведение оператора === зависит от класса левого операнда.
Примеры:
Module: Проверяет, является ли правый операнд экземпляром или потомком модуля/класса.
ruby
Range: Проверяет, находится ли правый операнд в диапазоне.
ruby
Regexp: Проверяет, соответствует ли строка регулярному выражению.
ruby
Proc: Вызывает блок с правым операндом в качестве аргумента.
ruby
Symbol: Сравнивает символ с другой строкой или символом.
ruby
В большинстве других классов === ведет себя как ==.
Применение в case/when:
Выражение case condition эквивалентно серии вызовов === на каждом when значении с condition в качестве правого операнда.
ruby