Обновил свои gem'ы ...
 
Уведомления
Очистить всё

Обновил свои gem'ы на Ruby 3.4: csv пропал, тесты упали на Hash#inspect

3 Сообщения
3 Пользователи
0 Реакции
401 Просмотры
kirill_spb
Сообщения: 27
Автор темы
Собрал свой gem разработчик инструментов
Присоединился: 4 года назад
[#60]

После праздников, как обычно, обновлял свои четыре 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


2 ответа
Максим О
Сообщения: 22
Собрал свой gem студент
Присоединился: 2 года назад

а it в блоках уже пробовал? по-моему читается приятнее, чем _1


Ответ
Виктор1987
Сообщения: 3
Пишет в irb data engineer
Присоединился: 2 года назад

base64 и bigdecimal туда же переехали. у кого они тянутся через старые gem'ы, которые их не объявляют, вылезет то же самое


Ответ