Non è mica che la classe in cui hai definito "leggi" è derivata da IO?... perché nel caso stai chiamando il metodo IO#puts su self e non Kernel#puts come ti aspetteresti.