После праздников, как обычно, обновлял свои четыре gem'а на Ruby 3.4. Две неожиданности. Первая: в gem'е для нарезки CSV под bundle exec упал require "csv". В 3.4 csv перестал быть default gem и стал bundled, и если его нет в gemspec, Bundler его не видит. В 3.3 об этом было предупреждение, но кто ж их читает. Вторая: упали тесты, которые сравнивали вывод inspect:
# Ruby 3.3
{ user_id: 1, "name" => "x" }.inspect # => "{:user_id=>1, \"name\"=>\"x\"}"
# Ruby 3.4
{ user_id: 1, "name" => "x" }.inspect # => "{user_id: 1, \"name\" => \"x\"}"
Сам виноват, сравнивать строку inspect в тестах так себе идея, переписал на сравнение хэшей. Ещё поменялись сообщения об ошибках: теперь undefined method 'foo' с обычной кавычкой вместо обратной, на этом упал один тест на текст исключения. Полный список изменений в NEWS: https://docs.ruby-lang.org
а it в блоках уже пробовал? по-моему читается приятнее, чем _1
base64 и bigdecimal туда же переехали. у кого они тянутся через старые gem'ы, которые их не объявляют, вылезет то же самое