Вы не делаете ничего плохого. Предполагая, что вы видите что-то вроде #<Adder:0xb7f9f710 @my_num=12>
, тогда в Ruby это просто представление по умолчанию объекта, который вы создали.
Если вы хотите изменить это поведение, чтобы сделать его более дружественным, когда вы передаете свой объект puts
, вы можете переопределить метод to_s (to string). например,
class Adder
def initialize(my_num)
@my_num = my_num
end
def to_s
"Adder with my_num = #{@my_num}"
end
end
тогда, когда вы сделаете puts y
, вы увидите Adder with my_num = 12
Вы также можете переопределить метод inspect
, который используется, например, когда консоль Ruby irb печатает представление вашего объекта, например,
class Adder
def inspect
to_s # return same representation as to_s
end
end
затем в irb:
>> y = Adder.new 12
=> Adder with my_num = 12