К сожалению, как и почти любой другой язык программирования на планете, Ruby не допускает перегрузки литералов.Если вам требуется буквальная перегрузка, вам придется использовать один из немногих языков программирования, которые его поддерживают, например Ioke или Seph .
Вот пример в Ioke:
[] = method(foo, foo println)
[1]
; 1
И в Seph:
[] = #(foo, foo println)
[1]
; 1
[Обратите внимание, что это, конечно, нанесет ущерб вашей системе, так как, например, большая часть Ioke / SephСтандартная библиотека реализована в Ioke / Seph, и они повсеместно используют списки, поэтому в производственной системе вы захотите правильно инкапсулировать это.]