mangusta 0.1.3 → 0.1.4
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/Gemfile.lock +3 -3
 - data/lib/mangusta/documento/relazione.ir +64 -12
 - data/lib/mangusta/documento.ir +34 -7
 - data/lib/mangusta/ripostiglio.ir +28 -6
 - data/lib/mangusta/utilit/303/240/convertitori.ir +2 -2
 - data/lib/mangusta/versione.ir +1 -1
 - 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: defaeaa7bbc87855a9dd60cd900a75bbe9096d04e213ec946aedc180178dc1d4
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 8c5368a5e8329580a0e30fce688168d753cab531e2f1d6d7a7716e6d1f11d1a0
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ec38f6a15fc834029dbd17d2b6f8a5aca1e9a1ff93b65a2bfdf0f4c433f4159e067a8b68bbe058d64019ff09bc93a68d0d99f9f114dbb7dffa346651025cc50f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e1777bbd9c0880f6636a41ff58966181e4cf71ff8017832857f62107f28931611990ad0558a975097b097c3ea352678f5096350432eb3e148eebc099d38172f3
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,8 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                mangusta (0.1. 
     | 
| 
       5 
     | 
    
         
            -
                  italian-ruby (~> 0.1 
     | 
| 
      
 4 
     | 
    
         
            +
                mangusta (0.1.3)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  italian-ruby (~> 0.1)
         
     | 
| 
       6 
6 
     | 
    
         
             
                  mongo (~> 2.11)
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            GEM
         
     | 
| 
         @@ -10,7 +10,7 @@ GEM 
     | 
|
| 
       10 
10 
     | 
    
         
             
              specs:
         
     | 
| 
       11 
11 
     | 
    
         
             
                bson (4.8.2)
         
     | 
| 
       12 
12 
     | 
    
         
             
                diff-lcs (1.3)
         
     | 
| 
       13 
     | 
    
         
            -
                italian-ruby (0.1. 
     | 
| 
      
 13 
     | 
    
         
            +
                italian-ruby (0.1.6)
         
     | 
| 
       14 
14 
     | 
    
         
             
                  ruby2ruby (~> 2.4)
         
     | 
| 
       15 
15 
     | 
    
         
             
                mongo (2.11.4)
         
     | 
| 
       16 
16 
     | 
    
         
             
                  bson (>= 4.4.2, < 5.0.0)
         
     | 
| 
         @@ -4,24 +4,44 @@ modulo Mangusta 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
                  accessore :nome
         
     | 
| 
       6 
6 
     | 
    
         
             
                  accessore :tipologia
         
     | 
| 
       7 
     | 
    
         
            -
                  accessore : 
     | 
| 
      
 7 
     | 
    
         
            +
                  accessore :nome_campo
         
     | 
| 
      
 8 
     | 
    
         
            +
                  accessore :nome_campo_relazionato
         
     | 
| 
       8 
9 
     | 
    
         
             
                  accessore :nome_ripostiglio
         
     | 
| 
       9 
10 
     | 
    
         | 
| 
       10 
11 
     | 
    
         
             
                  definisci inizializzatore(tipologia, nome, **parametri)
         
     | 
| 
       11 
     | 
    
         
            -
                     
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
      
 12 
     | 
    
         
            +
                    se_stessa.nome                    = nome
         
     | 
| 
      
 13 
     | 
    
         
            +
                    se_stessa.tipologia               = tipologia
         
     | 
| 
      
 14 
     | 
    
         
            +
                    se_stessa.nome_ripostiglio        = parametri.ottieni(:ripostiglio, nullo)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    se_stessa.nome_campo              = parametri.ottieni(:nome_campo, nullo)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    se_stessa.nome_campo_relazionato  = parametri.ottieni(:nome_campo_relazionato, nullo)
         
     | 
| 
       13 
17 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                     
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                     
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
                    alza "È necessario specificare una chiave :ripostiglio per la relazione" se
         
     | 
| 
      
 19 
     | 
    
         
            +
                      nome_ripostiglio.nullo?
         
     | 
| 
      
 20 
     | 
    
         
            +
                    alza "È necessario specificare una chiave :nome_campo per la relazione" se
         
     | 
| 
      
 21 
     | 
    
         
            +
                      nome_campo.nullo? e tipologia.in? [ :appartiene_a, :ha_e_appartiene_a_molti ]
         
     | 
| 
      
 22 
     | 
    
         
            +
                    alza "È necessario specificare una chiave :nome_campo_relazionato per la relazione" se
         
     | 
| 
      
 23 
     | 
    
         
            +
                      nome_campo_relazionato.nullo? e tipologia.in? [ :ha_molti, :ha_e_appartiene_a_molti ]
         
     | 
| 
       18 
24 
     | 
    
         
             
                  fine
         
     | 
| 
       19 
25 
     | 
    
         | 
| 
       20 
26 
     | 
    
         
             
                  ##
         
     | 
| 
       21 
27 
     | 
    
         
             
                  # Risolve il documento o i documenti relazionati.
         
     | 
| 
       22 
28 
     | 
    
         
             
                  definisci risolvi(documento)
         
     | 
| 
       23 
29 
     | 
    
         
             
                    considera tipologia
         
     | 
| 
       24 
     | 
    
         
            -
                    quando : 
     | 
| 
      
 30 
     | 
    
         
            +
                    quando :ha_molti                allora _risolvi_ha_molti(documento)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    quando :appartiene_a            allora _risolvi_appartiene_a(documento)
         
     | 
| 
      
 32 
     | 
    
         
            +
                    quando :ha_e_appartiene_a_molti allora _risolvi_ha_e_appartiene_a_molti(documento)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    altrimenti
         
     | 
| 
      
 34 
     | 
    
         
            +
                      alza "La relazione `#{tipologia}` non è supportata"
         
     | 
| 
      
 35 
     | 
    
         
            +
                    fine
         
     | 
| 
      
 36 
     | 
    
         
            +
                  fine
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 39 
     | 
    
         
            +
                  # Propaga la relazione con il valore passato.
         
     | 
| 
      
 40 
     | 
    
         
            +
                  definisci propaga(documento, valore)
         
     | 
| 
      
 41 
     | 
    
         
            +
                    considera tipologia
         
     | 
| 
      
 42 
     | 
    
         
            +
                    quando :ha_molti                allora ritorna
         
     | 
| 
      
 43 
     | 
    
         
            +
                    quando :appartiene_a            allora ritorna
         
     | 
| 
      
 44 
     | 
    
         
            +
                    quando :ha_e_appartiene_a_molti allora _propaga_ha_e_appartiene_a_molti(documento, valore)
         
     | 
| 
       25 
45 
     | 
    
         
             
                    altrimenti
         
     | 
| 
       26 
46 
     | 
    
         
             
                      alza "La relazione `#{tipologia}` non è supportata"
         
     | 
| 
       27 
47 
     | 
    
         
             
                    fine
         
     | 
| 
         @@ -30,19 +50,51 @@ modulo Mangusta 
     | 
|
| 
       30 
50 
     | 
    
         
             
                  privati
         
     | 
| 
       31 
51 
     | 
    
         | 
| 
       32 
52 
     | 
    
         
             
                    ##
         
     | 
| 
       33 
     | 
    
         
            -
                    # Puntatore al ripostiglio dove risolvere la relazione.
         
     | 
| 
      
 53 
     | 
    
         
            +
                    # Puntatore al ripostiglio dove risolvere o propagare la relazione.
         
     | 
| 
       34 
54 
     | 
    
         
             
                    definisci _ripostiglio
         
     | 
| 
       35 
     | 
    
         
            -
                      Oggetto.ottieni_costante 
     | 
| 
      
 55 
     | 
    
         
            +
                      Oggetto.ottieni_costante nome_ripostiglio
         
     | 
| 
      
 56 
     | 
    
         
            +
                    fine
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 59 
     | 
    
         
            +
                    # Risolve la relazione di `ha molti`.
         
     | 
| 
      
 60 
     | 
    
         
            +
                    definisci _risolvi_ha_molti(documento)
         
     | 
| 
      
 61 
     | 
    
         
            +
                      _ripostiglio.cerca("#{nome_campo}" => documento._id)
         
     | 
| 
       36 
62 
     | 
    
         
             
                    fine
         
     | 
| 
       37 
63 
     | 
    
         | 
| 
       38 
64 
     | 
    
         
             
                    ##
         
     | 
| 
       39 
     | 
    
         
            -
                    # Risolve la relazione di  
     | 
| 
      
 65 
     | 
    
         
            +
                    # Risolve la relazione di `appartiene a`.
         
     | 
| 
       40 
66 
     | 
    
         
             
                    definisci _risolvi_appartiene_a(documento)
         
     | 
| 
       41 
     | 
    
         
            -
                      id_documento_relazionato = documento.manda  
     | 
| 
      
 67 
     | 
    
         
            +
                      id_documento_relazionato = documento.manda nome_campo
         
     | 
| 
       42 
68 
     | 
    
         
             
                      ritorna nullo se id_documento_relazionato.nullo?
         
     | 
| 
       43 
69 
     | 
    
         
             
                      _ripostiglio.cerca_per_id id_documento_relazionato
         
     | 
| 
       44 
70 
     | 
    
         
             
                    fine
         
     | 
| 
       45 
71 
     | 
    
         | 
| 
      
 72 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 73 
     | 
    
         
            +
                    # Risolve la relazione di `ha e appartiene a molti`.
         
     | 
| 
      
 74 
     | 
    
         
            +
                    definisci _risolvi_ha_e_appartiene_a_molti(documento)
         
     | 
| 
      
 75 
     | 
    
         
            +
                      _ripostiglio.cerca _id: Mappa["$in": documento.manda(nome_campo) || []]
         
     | 
| 
      
 76 
     | 
    
         
            +
                    fine
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 79 
     | 
    
         
            +
                    # Aggiorna la relazione `ha e appartiene a molti`.
         
     | 
| 
      
 80 
     | 
    
         
            +
                    definisci _propaga_ha_e_appartiene_a_molti(documento, documenti_relazionati)
         
     | 
| 
      
 81 
     | 
    
         
            +
                      se documenti_relazionati.non_è_una? Lista o documenti_relazionati.alcuni? { |doc| doc.non_è_un? BSON::ObjectId }
         
     | 
| 
      
 82 
     | 
    
         
            +
                        alza "Per propagare la relazione `ha e appartiene a molti` è necessario passare una lista"\
         
     | 
| 
      
 83 
     | 
    
         
            +
                          "di elementi di tipo BSON::ObjectId"
         
     | 
| 
      
 84 
     | 
    
         
            +
                      fine
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                      collezione_relazionata = Mangusta.connessione[_ripostiglio._nome_collezione]
         
     | 
| 
      
 87 
     | 
    
         
            +
                      ricerca_documenti_relazionati = Mappa[_id: Mappa["$in": documenti_relazionati]]
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
                      se documenti_relazionati.almeno_uno?
         
     | 
| 
      
 90 
     | 
    
         
            +
                        collezione_relazionata.aggiorna_molti ricerca_documenti_relazionati,
         
     | 
| 
      
 91 
     | 
    
         
            +
                          "$addToSet" => Mappa[nome_campo_relazionato => documento._id]
         
     | 
| 
      
 92 
     | 
    
         
            +
                      altrimenti
         
     | 
| 
      
 93 
     | 
    
         
            +
                        collezione_relazionata.aggiorna_molti Mappa.nuova,
         
     | 
| 
      
 94 
     | 
    
         
            +
                          "$pullAll" => Mappa[nome_campo_relazionato => [ documento._id ]]
         
     | 
| 
      
 95 
     | 
    
         
            +
                      fine
         
     | 
| 
      
 96 
     | 
    
         
            +
                    fine
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
       46 
98 
     | 
    
         
             
                fine
         
     | 
| 
       47 
99 
     | 
    
         
             
              fine
         
     | 
| 
       48 
100 
     | 
    
         
             
            fine
         
     | 
    
        data/lib/mangusta/documento.ir
    CHANGED
    
    | 
         @@ -23,7 +23,6 @@ modulo Mangusta 
     | 
|
| 
       23 
23 
     | 
    
         
             
              #
         
     | 
| 
       24 
24 
     | 
    
         
             
              # I metodi di classe `appartiene_a`, `ha_molte`, `ha_e_appartiene_a_molte` (gli ultimi
         
     | 
| 
       25 
25 
     | 
    
         
             
              # due hanno alias `ha_molti` e `ha_e_appartiene_a_molti`) definiscono delle relazioni.
         
     | 
| 
       26 
     | 
    
         
            -
              #
         
     | 
| 
       27 
26 
     | 
    
         
             
              modulo Documento
         
     | 
| 
       28 
27 
     | 
    
         | 
| 
       29 
28 
     | 
    
         
             
                ##
         
     | 
| 
         @@ -50,6 +49,12 @@ modulo Mangusta 
     | 
|
| 
       50 
49 
     | 
    
         
             
                  se_stesso.classe.campi || []
         
     | 
| 
       51 
50 
     | 
    
         
             
                fine
         
     | 
| 
       52 
51 
     | 
    
         | 
| 
      
 52 
     | 
    
         
            +
                ##
         
     | 
| 
      
 53 
     | 
    
         
            +
                # Recupera le relazioni definite.
         
     | 
| 
      
 54 
     | 
    
         
            +
                definisci relazioni
         
     | 
| 
      
 55 
     | 
    
         
            +
                  se_stesso.classe.relazioni || []
         
     | 
| 
      
 56 
     | 
    
         
            +
                fine
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
       53 
58 
     | 
    
         
             
                ##
         
     | 
| 
       54 
59 
     | 
    
         
             
                # Recupera il valore di un campo del documento.
         
     | 
| 
       55 
60 
     | 
    
         
             
                definisci ottieni_valore_campo(nome_campo)
         
     | 
| 
         @@ -62,6 +67,18 @@ modulo Mangusta 
     | 
|
| 
       62 
67 
     | 
    
         
             
                  imposta_variabile_istanza "@#{nome_campo}", valore_campo
         
     | 
| 
       63 
68 
     | 
    
         
             
                fine
         
     | 
| 
       64 
69 
     | 
    
         | 
| 
      
 70 
     | 
    
         
            +
                ##
         
     | 
| 
      
 71 
     | 
    
         
            +
                # Ottiene la rappresentazione in Mappa dei campi del documento.
         
     | 
| 
      
 72 
     | 
    
         
            +
                definisci in_mappa
         
     | 
| 
      
 73 
     | 
    
         
            +
                  risultato = Mappa.nuova
         
     | 
| 
      
 74 
     | 
    
         
            +
                  campi.per_ognuno esegui |campo|
         
     | 
| 
      
 75 
     | 
    
         
            +
                    valore_campo = ottieni_valore_campo(campo.nome)
         
     | 
| 
      
 76 
     | 
    
         
            +
                    valore_campo = valore_campo.to_s se campo.nome == :_id
         
     | 
| 
      
 77 
     | 
    
         
            +
                    risultato.deposita campo.nome, valore_campo
         
     | 
| 
      
 78 
     | 
    
         
            +
                  fine
         
     | 
| 
      
 79 
     | 
    
         
            +
                  risultato
         
     | 
| 
      
 80 
     | 
    
         
            +
                fine
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
       65 
82 
     | 
    
         
             
                ##
         
     | 
| 
       66 
83 
     | 
    
         
             
                # Accede al valore dell'attributo originale del documento,
         
     | 
| 
       67 
84 
     | 
    
         
             
                # passando oltre gli accessori, per accedere a campi non modellati.
         
     | 
| 
         @@ -109,6 +126,13 @@ modulo Mangusta 
     | 
|
| 
       109 
126 
     | 
    
         
             
                        _memorizza_campo nome, **parametri
         
     | 
| 
       110 
127 
     | 
    
         
             
                      fine
         
     | 
| 
       111 
128 
     | 
    
         | 
| 
      
 129 
     | 
    
         
            +
                      ##
         
     | 
| 
      
 130 
     | 
    
         
            +
                      # Aggiunge un metodo di classe `ha_molti` per generare relazioni
         
     | 
| 
      
 131 
     | 
    
         
            +
                      # di possedimento.
         
     | 
| 
      
 132 
     | 
    
         
            +
                      definisci ha_molti(nome, **parametri)
         
     | 
| 
      
 133 
     | 
    
         
            +
                        _memorizza_relazione :ha_molti, nome, **parametri
         
     | 
| 
      
 134 
     | 
    
         
            +
                      fine
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
       112 
136 
     | 
    
         
             
                      ##
         
     | 
| 
       113 
137 
     | 
    
         
             
                      # Aggiunge un metodo di classe `appartiene_a` per generare relazioni
         
     | 
| 
       114 
138 
     | 
    
         
             
                      # di appartenenza.
         
     | 
| 
         @@ -116,6 +140,13 @@ modulo Mangusta 
     | 
|
| 
       116 
140 
     | 
    
         
             
                        _memorizza_relazione :appartiene_a, nome, **parametri
         
     | 
| 
       117 
141 
     | 
    
         
             
                      fine
         
     | 
| 
       118 
142 
     | 
    
         | 
| 
      
 143 
     | 
    
         
            +
                      ##
         
     | 
| 
      
 144 
     | 
    
         
            +
                      # Aggiunge un metodo di classe `ha_e_appartiene_a_molti` per generare relazioni
         
     | 
| 
      
 145 
     | 
    
         
            +
                      # di possedimento e appartenenza.
         
     | 
| 
      
 146 
     | 
    
         
            +
                      definisci ha_e_appartiene_a_molti(nome, **parametri)
         
     | 
| 
      
 147 
     | 
    
         
            +
                        _memorizza_relazione :ha_e_appartiene_a_molti, nome, **parametri
         
     | 
| 
      
 148 
     | 
    
         
            +
                      fine
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
       119 
150 
     | 
    
         
             
                      privati
         
     | 
| 
       120 
151 
     | 
    
         | 
| 
       121 
152 
     | 
    
         
             
                        ##
         
     | 
| 
         @@ -139,17 +170,13 @@ modulo Mangusta 
     | 
|
| 
       139 
170 
     | 
    
         
             
                          se_stesso.relazioni << nuova_relazione
         
     | 
| 
       140 
171 
     | 
    
         | 
| 
       141 
172 
     | 
    
         
             
                          considera tipologia
         
     | 
| 
       142 
     | 
    
         
            -
                          quando :appartiene_a
         
     | 
| 
       143 
     | 
    
         
            -
                            _memorizza_campo nuova_relazione. 
     | 
| 
      
 173 
     | 
    
         
            +
                          quando :appartiene_a, :ha_e_appartiene_a_molti
         
     | 
| 
      
 174 
     | 
    
         
            +
                            _memorizza_campo nuova_relazione.nome_campo
         
     | 
| 
       144 
175 
     | 
    
         
             
                          fine
         
     | 
| 
       145 
176 
     | 
    
         | 
| 
       146 
177 
     | 
    
         
             
                          definisci_metodo nome esegui
         
     | 
| 
       147 
178 
     | 
    
         
             
                            nuova_relazione.risolvi se_stesso
         
     | 
| 
       148 
179 
     | 
    
         
             
                          fine
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
                          definisci_metodo "#{nome}=" esegui |valore|
         
     | 
| 
       151 
     | 
    
         
            -
                            nuova_relazione.aggiorna se_stesso
         
     | 
| 
       152 
     | 
    
         
            -
                          fine
         
     | 
| 
       153 
180 
     | 
    
         
             
                        fine
         
     | 
| 
       154 
181 
     | 
    
         | 
| 
       155 
182 
     | 
    
         
             
                    fine
         
     | 
    
        data/lib/mangusta/ripostiglio.ir
    CHANGED
    
    | 
         @@ -62,7 +62,7 @@ modulo Mangusta 
     | 
|
| 
       62 
62 
     | 
    
         | 
| 
       63 
63 
     | 
    
         
             
                      ##
         
     | 
| 
       64 
64 
     | 
    
         
             
                      # Ritorna il primo documento del ripostiglio.
         
     | 
| 
       65 
     | 
    
         
            -
                       
     | 
| 
      
 65 
     | 
    
         
            +
                      definisci primo
         
     | 
| 
       66 
66 
     | 
    
         
             
                        _risultato_ricerca.primo
         
     | 
| 
       67 
67 
     | 
    
         
             
                      fine
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
         @@ -77,7 +77,10 @@ modulo Mangusta 
     | 
|
| 
       77 
77 
     | 
    
         
             
                      # Deposita un documento.
         
     | 
| 
       78 
78 
     | 
    
         
             
                      definisci inserisci(documento)
         
     | 
| 
       79 
79 
     | 
    
         
             
                        documento_in_json = Mangusta::Utilità.converti_in_json(documento)
         
     | 
| 
      
 80 
     | 
    
         
            +
                        documento_in_json.deposita :_id, BSON::ObjectId.new se documento_in_json.non_ha_chiave? :_id
         
     | 
| 
       80 
81 
     | 
    
         
             
                        _collezione.inserisci_uno documento_in_json
         
     | 
| 
      
 82 
     | 
    
         
            +
                        documento = Mangusta::Utilità.converti_in_documento documento, _classe_documento
         
     | 
| 
      
 83 
     | 
    
         
            +
                        _propaga_relazioni documento, documento_in_json
         
     | 
| 
       81 
84 
     | 
    
         
             
                        documento
         
     | 
| 
       82 
85 
     | 
    
         
             
                      fine
         
     | 
| 
       83 
86 
     | 
    
         | 
| 
         @@ -106,6 +109,8 @@ modulo Mangusta 
     | 
|
| 
       106 
109 
     | 
    
         
             
                      ##
         
     | 
| 
       107 
110 
     | 
    
         
             
                      # Aggiorna molti documenti.
         
     | 
| 
       108 
111 
     | 
    
         
             
                      definisci aggiorna_molti(ricerca = Mappa.nuova, **valori_da_aggiornare)
         
     | 
| 
      
 112 
     | 
    
         
            +
                        stampa "AGG MOLTI ---> RICERCA", ricerca
         
     | 
| 
      
 113 
     | 
    
         
            +
                        stampa "VALORI", valori_da_aggiornare, "^^^^^^^^^^^^"
         
     | 
| 
       109 
114 
     | 
    
         
             
                        alza "Il primo argomento deve essere una Mappa o una Lista di documenti" a_meno_che
         
     | 
| 
       110 
115 
     | 
    
         
             
                          ricerca.classe == Mappa o ricerca.risponde_a? :tutti?
         
     | 
| 
       111 
116 
     | 
    
         | 
| 
         @@ -126,9 +131,17 @@ modulo Mangusta 
     | 
|
| 
       126 
131 
     | 
    
         
             
                      fine
         
     | 
| 
       127 
132 
     | 
    
         
             
                      alias     :aggiorna_molte       :aggiorna_molti
         
     | 
| 
       128 
133 
     | 
    
         | 
| 
      
 134 
     | 
    
         
            +
                      ##
         
     | 
| 
      
 135 
     | 
    
         
            +
                      # Aggiorna tutti i documenti.
         
     | 
| 
      
 136 
     | 
    
         
            +
                      definisci aggiorna_tutti(**valori_da_aggiornare)
         
     | 
| 
      
 137 
     | 
    
         
            +
                        risultato_aggiornamento = _collezione.aggiorna_molti Mappa.nuova, Mappa["$set": valori_da_aggiornare]
         
     | 
| 
      
 138 
     | 
    
         
            +
                        risultato_aggiornamento.modified_count
         
     | 
| 
      
 139 
     | 
    
         
            +
                      fine
         
     | 
| 
      
 140 
     | 
    
         
            +
                      alias     :aggiorna_tutte       :aggiorna_tutti
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
       129 
142 
     | 
    
         
             
                      ##
         
     | 
| 
       130 
143 
     | 
    
         
             
                      # Cancella un documento.
         
     | 
| 
       131 
     | 
    
         
            -
                       
     | 
| 
      
 144 
     | 
    
         
            +
                      definisci cancella(documento)
         
     | 
| 
       132 
145 
     | 
    
         
             
                        alza "Il primo argomento deve essere una stringa o un documento" a_meno_che
         
     | 
| 
       133 
146 
     | 
    
         
             
                          documento.classe == Stringa o documento.risponde_a? :_id
         
     | 
| 
       134 
147 
     | 
    
         | 
| 
         @@ -140,7 +153,7 @@ modulo Mangusta 
     | 
|
| 
       140 
153 
     | 
    
         | 
| 
       141 
154 
     | 
    
         
             
                      ##
         
     | 
| 
       142 
155 
     | 
    
         
             
                      # Cancella molti documenti.
         
     | 
| 
       143 
     | 
    
         
            -
                       
     | 
| 
      
 156 
     | 
    
         
            +
                      definisci cancella_molti(documenti)
         
     | 
| 
       144 
157 
     | 
    
         
             
                        risultato_cancellazione = _collezione.cancella_uno Mappa[_id: id_documento]
         
     | 
| 
       145 
158 
     | 
    
         
             
                        risultato_cancellazione.deleted_count
         
     | 
| 
       146 
159 
     | 
    
         
             
                      fine
         
     | 
| 
         @@ -159,14 +172,23 @@ modulo Mangusta 
     | 
|
| 
       159 
172 
     | 
    
         
             
                        # Connette alla collezione.
         
     | 
| 
       160 
173 
     | 
    
         
             
                        definisci _collezione
         
     | 
| 
       161 
174 
     | 
    
         
             
                          alza "Mangusta non è ancora stato connesso ad una base dati" se Mangusta.connessione.nulla?
         
     | 
| 
       162 
     | 
    
         
            -
                          Mangusta.connessione[ 
     | 
| 
      
 175 
     | 
    
         
            +
                          Mangusta.connessione[_nome_collezione]
         
     | 
| 
       163 
176 
     | 
    
         
             
                        fine
         
     | 
| 
       164 
177 
     | 
    
         | 
| 
       165 
178 
     | 
    
         
             
                        ##
         
     | 
| 
       166 
179 
     | 
    
         
             
                        # Ritorna un risultato ricerca.
         
     | 
| 
       167 
180 
     | 
    
         
             
                        definisci _risultato_ricerca(**parametri)
         
     | 
| 
       168 
     | 
    
         
            -
                          Mangusta::Ripostiglio::RisultatoRicerca.nuovo(
         
     | 
| 
       169 
     | 
    
         
            -
             
     | 
| 
      
 181 
     | 
    
         
            +
                          Mangusta::Ripostiglio::RisultatoRicerca.nuovo(_collezione, _classe_documento, **parametri)
         
     | 
| 
      
 182 
     | 
    
         
            +
                        fine
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
      
 184 
     | 
    
         
            +
                        ##
         
     | 
| 
      
 185 
     | 
    
         
            +
                        # Propaga tutte le relazioni del documento.
         
     | 
| 
      
 186 
     | 
    
         
            +
                        definisci _propaga_relazioni(documento, documento_in_json)
         
     | 
| 
      
 187 
     | 
    
         
            +
                          Oggetto.ottieni_costante(_classe_documento).relazioni.per_ognuna esegui |relazione|
         
     | 
| 
      
 188 
     | 
    
         
            +
                            se documento_in_json.ha_chiave? relazione.nome_campo
         
     | 
| 
      
 189 
     | 
    
         
            +
                              relazione.propaga documento, documento_in_json.ottieni(relazione.nome_campo)
         
     | 
| 
      
 190 
     | 
    
         
            +
                            fine
         
     | 
| 
      
 191 
     | 
    
         
            +
                          fine
         
     | 
| 
       170 
192 
     | 
    
         
             
                        fine
         
     | 
| 
       171 
193 
     | 
    
         | 
| 
       172 
194 
     | 
    
         
             
                    fine
         
     | 
| 
         @@ -2,7 +2,7 @@ modulo Mangusta 
     | 
|
| 
       2 
2 
     | 
    
         
             
              modulo Utilità
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                definisci se_stessa.converti_in_json(documento)
         
     | 
| 
       5 
     | 
    
         
            -
                  ritorna documento se documento 
     | 
| 
      
 5 
     | 
    
         
            +
                  ritorna documento se documento.è_una? Mappa
         
     | 
| 
       6 
6 
     | 
    
         
             
                  alza "L'oggetto passato non include Mangusta::Documento" a_meno_che documento.risponde_a? :campi
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                  documento_convertito = Mappa.nuova
         
     | 
| 
         @@ -15,7 +15,7 @@ modulo Mangusta 
     | 
|
| 
       15 
15 
     | 
    
         
             
                fine
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                definisci se_stessa.converti_in_documento(documento_in_json, classe_documento)
         
     | 
| 
       18 
     | 
    
         
            -
                  ritorna  
     | 
| 
      
 18 
     | 
    
         
            +
                  ritorna documento_in_json se documento_in_json.non_è_una? Mappa
         
     | 
| 
       19 
19 
     | 
    
         
             
                  classe_documento ||= "Oggetto"
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                  Oggetto.ottieni_costante(classe_documento).nuovo **documento_in_json
         
     | 
    
        data/lib/mangusta/versione.ir
    CHANGED
    
    
    
        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.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.4
         
     | 
| 
       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-04-01 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: italian-ruby
         
     |