Я изучаю Ruby, и я видел несколько методов, которые меня немного смущают, особенно to_s vs to_str (и аналогичным образом to_i/to_int, to_a/to_ary и to_h/to_hash). То, что я прочитал, объясняет, что более короткая форма (например, to_s) предназначена для явных преобразований, а более длинная - для неявных преобразований.
Я действительно не понимаю, как использовать to_str. Может ли что-то отличное от String определять to_str? Можете ли вы дать практическое применение для этого метода?