Abbiamo già affrontato YAML nella prima guida durante la costruzione dell'applicazione di esempio. Riprendiamo ora quanto già detto e approfondiamo il discorso introducendo nuove funzionalità.
YAML, che sta per "YAML Ain't Markup Language", è un linguaggio per la rappresentazione delle informazioni. Nasce come risposta, leggera e leggibile, a XML ed è molto utilizzato nel mondo Ruby soprattutto per la costruzione di file di configurazione. A differenza del XML, per definire delle strutture, non si utilizzano i tag annidati, bensì gli spazi dell'indentazione.
I file in formato YAML sono semplici file di testo molto leggibili e, grazie al metodo to_yaml, possiamo rappresentare in questo formato anche le strutture dati Ruby. Vediamo ad esempio come viene rappresentato un hash in YAML:
>> utenti = [{:username => 'gls', :shell => ['tcsh', 'bash']},
{:username => 'root', :shell => ['csh']}]
>> utenti.to_yaml
---
- :username: gls
:shell:
- tcsh
- bash
- :username: root
:shell:
- csh
YAML risulta particolarmente utile per la serializzazione dei dati, per le operazioni di lettura e scrittura su file YAML vanno utilizzati rispettivamente i metodi load e dump.
Nel codice che segue YAML.dump scrive l'hash in formato YAML sul file "utenti.yaml", e YAML.load legge il file e ritrasforma il codice YAML di nuovo in hash.
require 'yaml'
utenti = [{:username => 'gls', :shell => ['tcsh', 'bash']},
{:username => 'root', :shell => ['csh']}]
open('utenti.yaml', 'w') { |file| YAML.dump(utenti, file) }
utenti_riletti = open("utenti.yaml") { |file| YAML.load(file) }
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: