Ruby :переопределяет метод puts

У меня есть небольшая программа, предназначенная для запуска в IRB. В конечном итоге он выводит что-то похожее на массив, хотя технически это не массив. (Класс наследуется от массива. )Проблема в том, что когда я делаю экземпляр этого класса, т.е. example = Awesome.new (1,2,3 ), и я пишу «помещает пример», поведение IRB по умолчанию заключается в том, чтобы поместить каждый элемент примера в отдельную строку.

Поэтому вместо

[1,2,3]

(это то, что я хочу ), IRB выскакивает это.

1
2
3 

Есть ли умный способ переопределить метод puts для этого специального класса? Я пробовал это, но это не сработало.

def puts
  self.to_a
end

Любая идея, что я делаю неправильно?

Обновление :Итак, я попробовал это, но безуспешно.

def to_s
  return self
end

Поэтому, когда я нахожусь в IRB и просто набираю «пример», я получаю поведение, которое я ищу (, то есть [1, 2, 3].Так что я подумал, что могу просто вернуть себя, но я все еще что-то путаю, видимо. Что я не понимаю?

6
задан Ben Downey 13 July 2012 в 04:13
поделиться