Come faccio a creare la mia classe che può essere sostituita a IO per ad es. reindirizzare/catturare input/output per un codice che accetta un parametro simile all'IO? Lo stesso IO sembra essere accoppiato a descrittori di file OS e l'unica classe che conosco che lo imita senza sottoclassi è StringIO, che sembra reimplementare l'intera interfaccia.Come si crea una sottoclasse personalizzata di IO in Ruby?
Penso che il linguaggio potrebbe fornire un modo semplice per farlo, ma non riesco a trovare alcuna informazione sull'argomento. Esiste un mixin che implementa l'interfaccia su alcuni primitivi, come fa Enumerable?
Il problema è che ci sono metodi di hojillion che leggono/scrivono dati e reimplementarli tutti è noioso. Enumerable implementa esplicitamente tutto in #each, quindi sovrascrivendo #each, si ottiene tutto gratuitamente ". Non capisco perché IO non funzioni allo stesso modo o perché i mixin che sto scrivendo per realizzare questo non esistono già. L'altra cosa strana è che IO è così specializzato, con metodi come sys * che non appartengono ad altre implementazioni. Questo può essere risolto ma non è l'ideale. – jedediah