mangusta 0.5.0 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/mangusta/documento.ir +5 -2
 - data/lib/mangusta/documento/campo.ir +2 -2
 - data/lib/mangusta/documento/espositore.ir +1 -1
 - data/lib/mangusta/documento/metodi_condivisi.ir +13 -2
 - data/lib/mangusta/documento/metodi_di_classe.ir +9 -0
 - data/lib/mangusta/documento/relazione.ir +17 -2
 - data/lib/mangusta/ripostiglio.ir +15 -5
 - data/lib/mangusta/versione.ir +2 -2
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 99217eb229680a1d860e308ff317896adac49859203e58a27193fe97cc64b18f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 1524da01c2bb759df42aed57b1d70277e9e6ef8f068be8f8dfea8e5c49823504
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 61a989d77e0e858aa30d076c38508b1a35dddaf3d0eff56f90b39b0ac113bbfd39565091ba095b0f8f2cb90c9b99d0d9fec15469cdee658d9f706cda51a00ef1
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 63c85e352a41173ecb14bb332e667745431bdc5a42474043f4f0926b75b9886147149142c1b6e5e6a2a86f54d5793dffcc1c1c6e9a530a3bf4edb2e2b1c7cc1d
         
     | 
    
        data/lib/mangusta/documento.ir
    CHANGED
    
    | 
         @@ -70,10 +70,13 @@ modulo Mangusta 
     | 
|
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         
             
                ##
         
     | 
| 
       72 
72 
     | 
    
         
             
                # Espone il documento come JSON.
         
     | 
| 
       73 
     | 
    
         
            -
                definisci  
     | 
| 
      
 73 
     | 
    
         
            +
                definisci _esponi(*chiavi_richieste, **relazioni_richieste)
         
     | 
| 
       74 
74 
     | 
    
         
             
                  espositore = Mangusta::Documento::Espositore.nuovo se_stesso, *chiavi_richieste, **relazioni_richieste
         
     | 
| 
       75 
75 
     | 
    
         
             
                  espositore.esponi
         
     | 
| 
       76 
76 
     | 
    
         
             
                fine
         
     | 
| 
      
 77 
     | 
    
         
            +
                definisci esponi(*chiavi_richieste, **relazioni_richieste)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  _esponi *chiavi_richieste, **relazioni_richieste
         
     | 
| 
      
 79 
     | 
    
         
            +
                fine
         
     | 
| 
       77 
80 
     | 
    
         
             
                alias     :in_mappa       :esponi
         
     | 
| 
       78 
81 
     | 
    
         | 
| 
       79 
82 
     | 
    
         
             
                ##
         
     | 
| 
         @@ -115,4 +118,4 @@ modulo Mangusta 
     | 
|
| 
       115 
118 
     | 
    
         
             
                  fine
         
     | 
| 
       116 
119 
     | 
    
         | 
| 
       117 
120 
     | 
    
         
             
              fine
         
     | 
| 
       118 
     | 
    
         
            -
            fine
         
     | 
| 
      
 121 
     | 
    
         
            +
            fine
         
     | 
| 
         @@ -21,7 +21,7 @@ modulo Mangusta 
     | 
|
| 
       21 
21 
     | 
    
         
             
                  ##
         
     | 
| 
       22 
22 
     | 
    
         
             
                  # Determina se il campo è stato creato con un valore iniziale.
         
     | 
| 
       23 
23 
     | 
    
         
             
                  definisci ha_valore_iniziale?
         
     | 
| 
       24 
     | 
    
         
            -
                    se_stesso.valore_iniziale 
     | 
| 
      
 24 
     | 
    
         
            +
                    se_stesso.valore_iniziale != nullo
         
     | 
| 
       25 
25 
     | 
    
         
             
                  fine
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                  ##
         
     | 
| 
         @@ -56,4 +56,4 @@ modulo Mangusta 
     | 
|
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
                fine
         
     | 
| 
       58 
58 
     | 
    
         
             
              fine
         
     | 
| 
       59 
     | 
    
         
            -
            fine
         
     | 
| 
      
 59 
     | 
    
         
            +
            fine
         
     | 
| 
         @@ -130,7 +130,7 @@ modulo Mangusta 
     | 
|
| 
       130 
130 
     | 
    
         | 
| 
       131 
131 
     | 
    
         
             
                        campi_relazione_filtrati = @filtrati_richiesti.prendi relazione.nome
         
     | 
| 
       132 
132 
     | 
    
         
             
                        considera relazione.tipologia
         
     | 
| 
       133 
     | 
    
         
            -
                        quando :appartiene_a
         
     | 
| 
      
 133 
     | 
    
         
            +
                        quando :ha_un, :appartiene_a
         
     | 
| 
       134 
134 
     | 
    
         
             
                          documento_esposto.deposita relazione.nome, valore_relazione.esponi(*campi_relazione_filtrati)
         
     | 
| 
       135 
135 
     | 
    
         
             
                        quando :ha_molti, :ha_e_appartiene_a_molti
         
     | 
| 
       136 
136 
     | 
    
         
             
                          documento_esposto.deposita relazione.nome, valore_relazione
         
     | 
| 
         @@ -14,10 +14,21 @@ modulo Mangusta 
     | 
|
| 
       14 
14 
     | 
    
         
             
                    se_stesso == documento
         
     | 
| 
       15 
15 
     | 
    
         
             
                  fine
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 18 
     | 
    
         
            +
                  # Rappresentazione univoca del documento.
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # Utilizzato dal metodo `rimuovi_duplicati` di una Lista.
         
     | 
| 
      
 20 
     | 
    
         
            +
                  definisci hash
         
     | 
| 
      
 21 
     | 
    
         
            +
                    _id.in_stringa.hash
         
     | 
| 
      
 22 
     | 
    
         
            +
                  fine
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       17 
24 
     | 
    
         
             
                  ##
         
     | 
| 
       18 
25 
     | 
    
         
             
                  # Ottiene la rappresentazione per stampa dell'oggetto.
         
     | 
| 
       19 
26 
     | 
    
         
             
                  definisci inspect
         
     | 
| 
       20 
     | 
    
         
            -
                     
     | 
| 
      
 27 
     | 
    
         
            +
                    se definito? AwesomePrint
         
     | 
| 
      
 28 
     | 
    
         
            +
                      ai
         
     | 
| 
      
 29 
     | 
    
         
            +
                    altrimenti
         
     | 
| 
      
 30 
     | 
    
         
            +
                      "#<#{se_stesso.classe} #{se_stesso.esponi}>"
         
     | 
| 
      
 31 
     | 
    
         
            +
                    fine
         
     | 
| 
       21 
32 
     | 
    
         
             
                  fine
         
     | 
| 
       22 
33 
     | 
    
         
             
                  definisci ai(opzioni = Mappa.nuova)
         
     | 
| 
       23 
34 
     | 
    
         
             
                    se definito? AwesomePrint
         
     | 
| 
         @@ -30,4 +41,4 @@ modulo Mangusta 
     | 
|
| 
       30 
41 
     | 
    
         | 
| 
       31 
42 
     | 
    
         
             
                fine
         
     | 
| 
       32 
43 
     | 
    
         
             
              fine
         
     | 
| 
       33 
     | 
    
         
            -
            fine
         
     | 
| 
      
 44 
     | 
    
         
            +
            fine
         
     | 
| 
         @@ -15,6 +15,15 @@ modulo Mangusta 
     | 
|
| 
       15 
15 
     | 
    
         
             
                    _definisci_relazione nome, :appartiene_a, **opzioni
         
     | 
| 
       16 
16 
     | 
    
         
             
                  fine
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
      
 18 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # Aggiunge un metodo di classe `ha_un` per definire una relazione
         
     | 
| 
      
 20 
     | 
    
         
            +
                  # di appartenenza di un documento.
         
     | 
| 
      
 21 
     | 
    
         
            +
                  definisci ha_un(nome, **opzioni)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    _definisci_relazione nome, :ha_un, **opzioni
         
     | 
| 
      
 23 
     | 
    
         
            +
                  fine
         
     | 
| 
      
 24 
     | 
    
         
            +
                  alias     :ha_uno           :ha_un
         
     | 
| 
      
 25 
     | 
    
         
            +
                  alias     :ha_una           :ha_un
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       18 
27 
     | 
    
         
             
                  ##
         
     | 
| 
       19 
28 
     | 
    
         
             
                  # Aggiunge un metodo di classe `ha_molti` per definire una relazione
         
     | 
| 
       20 
29 
     | 
    
         
             
                  # di appartenenza di molti documenti.
         
     | 
| 
         @@ -26,13 +26,13 @@ modulo Mangusta 
     | 
|
| 
       26 
26 
     | 
    
         
             
                    se_stessa.nome_campo_relazionato  = parametri.prendi :nome_campo_relazionato, nullo
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                    alza NonValida, "la relazione `#{tipologia}` non è supportata" se
         
     | 
| 
       29 
     | 
    
         
            -
                      tipologia.non_in? [ :appartiene_a, :ha_molti, :ha_e_appartiene_a_molti ]
         
     | 
| 
      
 29 
     | 
    
         
            +
                      tipologia.non_in? [ :appartiene_a, :ha_un, :ha_molti, :ha_e_appartiene_a_molti ]
         
     | 
| 
       30 
30 
     | 
    
         
             
                    alza NonValida, "è necessario specificare una chiave :ripostiglio per la relazione" se
         
     | 
| 
       31 
31 
     | 
    
         
             
                      nome_ripostiglio.nullo?
         
     | 
| 
       32 
32 
     | 
    
         
             
                    alza NonValida, "è necessario specificare una chiave :nome_campo per la relazione" se
         
     | 
| 
       33 
33 
     | 
    
         
             
                      nome_campo.nullo? e tipologia.in? [ :appartiene_a, :ha_e_appartiene_a_molti ]
         
     | 
| 
       34 
34 
     | 
    
         
             
                    alza NonValida, "è necessario specificare una chiave :nome_campo_relazionato per la relazione" se
         
     | 
| 
       35 
     | 
    
         
            -
                      nome_campo_relazionato.nullo? e tipologia.in? [ :ha_molti, :ha_e_appartiene_a_molti ]
         
     | 
| 
      
 35 
     | 
    
         
            +
                      nome_campo_relazionato.nullo? e tipologia.in? [ :ha_un, :ha_molti, :ha_e_appartiene_a_molti ]
         
     | 
| 
       36 
36 
     | 
    
         
             
                  fine
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         
             
                  ##
         
     | 
| 
         @@ -57,6 +57,7 @@ modulo Mangusta 
     | 
|
| 
       57 
57 
     | 
    
         
             
                  # Risolve una relazione.
         
     | 
| 
       58 
58 
     | 
    
         
             
                  definisci risolvi(documento)
         
     | 
| 
       59 
59 
     | 
    
         
             
                    considera tipologia
         
     | 
| 
      
 60 
     | 
    
         
            +
                    quando :ha_un                   allora _risolvi_ha_un documento
         
     | 
| 
       60 
61 
     | 
    
         
             
                    quando :ha_molti                allora _risolvi_ha_molti documento
         
     | 
| 
       61 
62 
     | 
    
         
             
                    quando :appartiene_a            allora _risolvi_appartiene_a documento
         
     | 
| 
       62 
63 
     | 
    
         
             
                    quando :ha_e_appartiene_a_molti allora _risolvi_ha_e_appartiene_a_molti documento
         
     | 
| 
         @@ -68,6 +69,7 @@ modulo Mangusta 
     | 
|
| 
       68 
69 
     | 
    
         
             
                  # Assegna una relazione.
         
     | 
| 
       69 
70 
     | 
    
         
             
                  definisci assegna(documento, valore)
         
     | 
| 
       70 
71 
     | 
    
         
             
                    considera tipologia
         
     | 
| 
      
 72 
     | 
    
         
            +
                    quando :ha_un                   allora ritorna
         
     | 
| 
       71 
73 
     | 
    
         
             
                    quando :ha_molti                allora ritorna
         
     | 
| 
       72 
74 
     | 
    
         
             
                    quando :appartiene_a            allora _assegna_appartiene_a documento, valore
         
     | 
| 
       73 
75 
     | 
    
         
             
                    quando :ha_e_appartiene_a_molti allora _assegna_ha_e_appartiene_a_molti documento, valore
         
     | 
| 
         @@ -78,6 +80,7 @@ modulo Mangusta 
     | 
|
| 
       78 
80 
     | 
    
         
             
                  # Propaga la relazione con il valore passato.
         
     | 
| 
       79 
81 
     | 
    
         
             
                  definisci propaga(documento)
         
     | 
| 
       80 
82 
     | 
    
         
             
                    considera tipologia
         
     | 
| 
      
 83 
     | 
    
         
            +
                    quando :ha_un                   allora ritorna
         
     | 
| 
       81 
84 
     | 
    
         
             
                    quando :ha_molti                allora ritorna
         
     | 
| 
       82 
85 
     | 
    
         
             
                    quando :appartiene_a            allora ritorna
         
     | 
| 
       83 
86 
     | 
    
         
             
                    quando :ha_e_appartiene_a_molti allora _propaga_ha_e_appartiene_a_molti documento
         
     | 
| 
         @@ -86,6 +89,18 @@ modulo Mangusta 
     | 
|
| 
       86 
89 
     | 
    
         | 
| 
       87 
90 
     | 
    
         
             
                  privati
         
     | 
| 
       88 
91 
     | 
    
         | 
| 
      
 92 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 93 
     | 
    
         
            +
                    # Risolve la relazione di `ha un`.
         
     | 
| 
      
 94 
     | 
    
         
            +
                    definisci _risolvi_ha_un(documento)
         
     | 
| 
      
 95 
     | 
    
         
            +
                      se @documenti_in_memoria.esiste?
         
     | 
| 
      
 96 
     | 
    
         
            +
                        @documenti_in_memoria.trova esegui |documento_relazionato|
         
     | 
| 
      
 97 
     | 
    
         
            +
                          documento_relazionato.manda(nome_campo_relazionato) == documento._id
         
     | 
| 
      
 98 
     | 
    
         
            +
                        fine
         
     | 
| 
      
 99 
     | 
    
         
            +
                      altrimenti
         
     | 
| 
      
 100 
     | 
    
         
            +
                        ripostiglio.cerca(nome_campo_relazionato => documento._id).primo
         
     | 
| 
      
 101 
     | 
    
         
            +
                      fine
         
     | 
| 
      
 102 
     | 
    
         
            +
                    fine
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
       89 
104 
     | 
    
         
             
                    ##
         
     | 
| 
       90 
105 
     | 
    
         
             
                    # Risolve la relazione di `ha molti`.
         
     | 
| 
       91 
106 
     | 
    
         
             
                    definisci _risolvi_ha_molti(documento)
         
     | 
    
        data/lib/mangusta/ripostiglio.ir
    CHANGED
    
    | 
         @@ -41,6 +41,7 @@ modulo Mangusta 
     | 
|
| 
       41 
41 
     | 
    
         
             
                    estendi Mangusta::Ripostiglio::MetodiDiClasse::Persistenza
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                    classe << se_stesso
         
     | 
| 
      
 44 
     | 
    
         
            +
                      accessore :nome_base_dati
         
     | 
| 
       44 
45 
     | 
    
         
             
                      accessore :nome_collezione
         
     | 
| 
       45 
46 
     | 
    
         
             
                      accessore :nome_classe_documento
         
     | 
| 
       46 
47 
     | 
    
         
             
                      accessore :classe_documento
         
     | 
| 
         @@ -55,14 +56,23 @@ modulo Mangusta 
     | 
|
| 
       55 
56 
     | 
    
         
             
                  ##
         
     | 
| 
       56 
57 
     | 
    
         
             
                  # Ritorna l'oggetto collezione agganciato a questo ripostiglio.
         
     | 
| 
       57 
58 
     | 
    
         
             
                  # Se chiamato con argomento, imposta la collezione all'argomento passato.
         
     | 
| 
       58 
     | 
    
         
            -
                  definisci collezione(nome_collezione_da_impostare = nullo)
         
     | 
| 
       59 
     | 
    
         
            -
                    se nome_collezione_da_impostare. 
     | 
| 
      
 59 
     | 
    
         
            +
                  definisci collezione(nome_collezione_da_impostare = nullo, base_dati: nullo)
         
     | 
| 
      
 60 
     | 
    
         
            +
                    se nome_collezione_da_impostare.specificato?
         
     | 
| 
       60 
61 
     | 
    
         
             
                      se_stesso.nome_collezione = nome_collezione_da_impostare
         
     | 
| 
      
 62 
     | 
    
         
            +
                      se_stesso.nome_base_dati = base_dati se base_dati.specificata?
         
     | 
| 
       61 
63 
     | 
    
         
             
                      ritorna nome_collezione
         
     | 
| 
       62 
64 
     | 
    
         
             
                    fine
         
     | 
| 
       63 
65 
     | 
    
         | 
| 
       64 
66 
     | 
    
         
             
                    alza "Mangusta non è ancora stato connesso ad una base dati" se Mangusta.connessione.nulla?
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                    se se_stesso.nome_base_dati.specificato?
         
     | 
| 
      
 69 
     | 
    
         
            +
                      basi_dati = Mangusta.connessione.list_mongo_databases
         
     | 
| 
      
 70 
     | 
    
         
            +
                      base_dati = basi_dati.trova { |base_dati| base_dati.name == se_stesso.nome_base_dati }
         
     | 
| 
      
 71 
     | 
    
         
            +
                      alza "la base dati `#{se_stesso.nome_base_dati}` non esiste" se basi_dati.non_esiste?
         
     | 
| 
      
 72 
     | 
    
         
            +
                      base_dati[se_stesso.nome_collezione]
         
     | 
| 
      
 73 
     | 
    
         
            +
                    altrimenti
         
     | 
| 
      
 74 
     | 
    
         
            +
                      Mangusta.connessione[se_stesso.nome_collezione]
         
     | 
| 
      
 75 
     | 
    
         
            +
                    fine
         
     | 
| 
       66 
76 
     | 
    
         
             
                  fine
         
     | 
| 
       67 
77 
     | 
    
         | 
| 
       68 
78 
     | 
    
         
             
                  ##
         
     | 
| 
         @@ -166,7 +176,7 @@ modulo Mangusta 
     | 
|
| 
       166 
176 
     | 
    
         
             
                    # Inserisce un documento nella collezione.
         
     | 
| 
       167 
177 
     | 
    
         
             
                    definisci inserisci(documento)
         
     | 
| 
       168 
178 
     | 
    
         
             
                      se documento.è_un? classe_documento
         
     | 
| 
       169 
     | 
    
         
            -
                        collezione.inserisci_uno documento. 
     | 
| 
      
 179 
     | 
    
         
            +
                        collezione.inserisci_uno documento._esponi
         
     | 
| 
       170 
180 
     | 
    
         
             
                        documento_da_ritornare = documento
         
     | 
| 
       171 
181 
     | 
    
         
             
                      altrimenti_se documento.è_una? Mappa
         
     | 
| 
       172 
182 
     | 
    
         
             
                        collezione.inserisci_uno documento
         
     | 
| 
         @@ -185,7 +195,7 @@ modulo Mangusta 
     | 
|
| 
       185 
195 
     | 
    
         
             
                      alza "i documenti da inserire devono essere una Lista" se documenti.non_è_una? Lista
         
     | 
| 
       186 
196 
     | 
    
         | 
| 
       187 
197 
     | 
    
         
             
                      se documenti.tutti? { |documento| documento.è_un? classe_documento }
         
     | 
| 
       188 
     | 
    
         
            -
                        collezione.inserisci_molti documenti.mappa(&: 
     | 
| 
      
 198 
     | 
    
         
            +
                        collezione.inserisci_molti documenti.mappa(&:_esponi)
         
     | 
| 
       189 
199 
     | 
    
         
             
                      altrimenti_se documenti.tutti? { |documento| documento.è_una? Mappa }
         
     | 
| 
       190 
200 
     | 
    
         
             
                        collezione.inserisci_molti documenti
         
     | 
| 
       191 
201 
     | 
    
         
             
                      altrimenti
         
     | 
    
        data/lib/mangusta/versione.ir
    CHANGED
    
    | 
         @@ -1,3 +1,3 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            modulo Mangusta
         
     | 
| 
       2 
     | 
    
         
            -
              VERSIONE = "0.5. 
     | 
| 
       3 
     | 
    
         
            -
            fine
         
     | 
| 
      
 2 
     | 
    
         
            +
              VERSIONE = "0.5.5"
         
     | 
| 
      
 3 
     | 
    
         
            +
            fine
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mangusta
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Francesco Ballardin
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-07-16 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: italian-ruby
         
     |