Marshall

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


Il Marshalling e’ la procedura che permette di serializzare dei dati contenuti in un programma, avendo dunque la possibilita’ di salvarli su un file o in un database o di trasmetterli via Internet. Questa funzionalita’ esiste in quasi ogni linguaggio, ed in ruby e’ implementata nel modulo Marshal.

Questo modulo offre due metodi decisamente intuitivi:

Il primo trasforma un oggetto in una stringa, o lo scrivo su di un oggetto IO. Il secondo accetta un oggetto IO o uno che risponda al metodo to_str(), cioe’ che puo’ essere trasformato in stringa a letto.

In generale Marshal e’ in grado di serializzare quasi tutto quello che desiderate, con l’eccezione degli oggetti Proc, in maniera del tutto automatica:
 >> class Mia
 >>  def initialize(a)
 >>   @a=a
 >>  end
 >> end
 => nil
 >> m=Mia.new 10
 => #<Mia:0x27cc258 @a=10>
 >> str= Marshal.dump m
 => "\004\010o:\010Mia\006:\a@ai\017" 
 >> Marshal.load str
 => #<Mia:0x27c7a40 @a=10>
Notate che i due oggetti non sono lo stesso, anche se sono uguali.
Updated on November 26, 2005 13:13 by Ruby Fan (151.37.150.7)