mangusta 0.4.1 → 0.4.6
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/.gitignore +1 -0
- data/lib/mangusta.ir +6 -5
- data/lib/mangusta/documento.ir +5 -3
- data/lib/mangusta/documento/campo.ir +1 -1
- data/lib/mangusta/documento/espositore.ir +3 -3
- data/lib/mangusta/documento/incorporato.ir +2 -2
- data/lib/mangusta/documento/relazione.ir +7 -6
- data/lib/mangusta/ripostiglio.ir +10 -6
- 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: 4d2f20cc69e65ae5f20dc801665a0251238fb74ddb128a3952616c62145aac15
|
|
4
|
+
data.tar.gz: 04bcf00cb49c97528926b9fd5b0338f92718a99dfc35c68ca570c1ea811e076e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4a913616f90146b989f11582d7d2c4a401983cc1841f3f87c4f5d63c555a401e5f5dac6177e280f7671b6ec49ebf5ad0e3cbba2d060bd9be1ad1ba7196ecd79a
|
|
7
|
+
data.tar.gz: 023f8792d2c6d8d45310a7e3c09def270db9c6a3966c7a97bc5308e32a213b3b03dd18fabc4f427b2ae8060dce1101c967fe792082b3518f050930bc91685d21
|
data/.gitignore
CHANGED
data/lib/mangusta.ir
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
richiedi "bson"
|
|
2
|
+
richiedi "mongo"
|
|
3
|
+
richiedi "italian/ruby/core_ext/gems/bson"
|
|
4
|
+
richiedi_relativo "mangusta/core_ext/mongo"
|
|
4
5
|
richiedi_tutti "mangusta"
|
|
5
6
|
|
|
6
7
|
modulo Mangusta
|
|
@@ -19,8 +20,8 @@ modulo Mangusta
|
|
|
19
20
|
ritorna connessione se connessione.esiste?
|
|
20
21
|
|
|
21
22
|
se_stessa.connessione = Mongo::Client.nuovo(
|
|
22
|
-
[ parametri.
|
|
23
|
-
database: parametri.
|
|
23
|
+
[ parametri.prendi(:indirizzo) ],
|
|
24
|
+
database: parametri.prendi(:base_dati))
|
|
24
25
|
|
|
25
26
|
se_stessa.base_dati = connessione.database
|
|
26
27
|
se_stessa.collezioni = base_dati.collections
|
data/lib/mangusta/documento.ir
CHANGED
|
@@ -13,7 +13,9 @@ modulo Mangusta
|
|
|
13
13
|
# includi Mangusta::Documento
|
|
14
14
|
#
|
|
15
15
|
# campo :titolo, valore_iniziale: "Il Signore degli Anelli"
|
|
16
|
-
# appartiene_a :autore,
|
|
16
|
+
# appartiene_a :autore,
|
|
17
|
+
# ripostiglio: "RipostiglioAutori",
|
|
18
|
+
# nome_campo: :id_autore
|
|
17
19
|
# fine
|
|
18
20
|
#
|
|
19
21
|
# Il metodo di classe `campo` ha come primo argomento obbligatorio il nome del campo,
|
|
@@ -120,7 +122,7 @@ modulo Mangusta
|
|
|
120
122
|
# Accede al valore dell'attributo originale del documento,
|
|
121
123
|
# passando oltre gli accessori, per accedere a campi non modellati.
|
|
122
124
|
definisci [](attributo)
|
|
123
|
-
@_attributi_originali.
|
|
125
|
+
@_attributi_originali.prendi attributo
|
|
124
126
|
fine
|
|
125
127
|
|
|
126
128
|
##
|
|
@@ -150,7 +152,7 @@ modulo Mangusta
|
|
|
150
152
|
##
|
|
151
153
|
# Genera il puntatore al documento padre.
|
|
152
154
|
definisci _genera_documento_padre(**attributi)
|
|
153
|
-
@_padre = attributi.
|
|
155
|
+
@_padre = attributi.prendi :_padre
|
|
154
156
|
fine
|
|
155
157
|
|
|
156
158
|
##
|
|
@@ -11,7 +11,7 @@ modulo Mangusta
|
|
|
11
11
|
# Imposta nome e valore iniziale.
|
|
12
12
|
definisci inizializzatore(nome, **parametri)
|
|
13
13
|
se_stesso.nome = nome
|
|
14
|
-
se_stesso.valore_iniziale = parametri.
|
|
14
|
+
se_stesso.valore_iniziale = parametri.prendi(:valore_iniziale, nullo)
|
|
15
15
|
fine
|
|
16
16
|
|
|
17
17
|
##
|
|
@@ -34,18 +34,18 @@ modulo Mangusta
|
|
|
34
34
|
|
|
35
35
|
@campi_richiesti.per_ognuno esegui |campo_richiesto|
|
|
36
36
|
prossimo se campo_richiesto.non_è_un? Simbolo
|
|
37
|
-
esposizione_filtrata.deposita campo_richiesto, @documento_convertito.
|
|
37
|
+
esposizione_filtrata.deposita campo_richiesto, @documento_convertito.prendi(campo_richiesto, nullo)
|
|
38
38
|
fine
|
|
39
39
|
|
|
40
40
|
@relazioni_dirette.per_ognuna esegui |relazione_richiesta|
|
|
41
41
|
alza Relazione::NonInclusa, "per poter esporre la relazione `#{relazione_richiesta}` è necessario prima includerla" se
|
|
42
42
|
relazione_richiesta.non_è_un? Simbolo o @documento_convertito.non_ha_chiave? relazione_richiesta
|
|
43
|
-
esposizione_filtrata.deposita relazione_richiesta, @documento_convertito.
|
|
43
|
+
esposizione_filtrata.deposita relazione_richiesta, @documento_convertito.prendi(relazione_richiesta)
|
|
44
44
|
fine
|
|
45
45
|
|
|
46
46
|
@relazioni_richieste.per_ognuna esegui |nome_relazione, campi_relazione_richiesti|
|
|
47
47
|
prossima se campi_relazione_richiesti.non_è_una? Lista
|
|
48
|
-
valore_relazione = @documento_convertito.
|
|
48
|
+
valore_relazione = @documento_convertito.prendi nome_relazione, nulla
|
|
49
49
|
se valore_relazione.è_una? Mappa
|
|
50
50
|
esposizione_filtrata.deposita nome_relazione, valore_relazione
|
|
51
51
|
.seleziona { |chiave, valore| chiave.in? campi_relazione_richiesti }
|
|
@@ -12,8 +12,8 @@ modulo Mangusta
|
|
|
12
12
|
# Imposta nome e valore iniziale.
|
|
13
13
|
definisci inizializzatore(nome, **parametri)
|
|
14
14
|
se_stesso.nome = nome
|
|
15
|
-
se_stesso.tipologia = parametri.
|
|
16
|
-
se_stesso.nome_classe = parametri.
|
|
15
|
+
se_stesso.tipologia = parametri.prendi(:tipologia)
|
|
16
|
+
se_stesso.nome_classe = parametri.prendi(:nome_classe)
|
|
17
17
|
fine
|
|
18
18
|
|
|
19
19
|
##
|
|
@@ -12,9 +12,9 @@ modulo Mangusta
|
|
|
12
12
|
definisci inizializzatore(tipologia, nome, **parametri)
|
|
13
13
|
se_stessa.nome = nome
|
|
14
14
|
se_stessa.tipologia = tipologia
|
|
15
|
-
se_stessa.nome_ripostiglio = parametri.
|
|
16
|
-
se_stessa.nome_campo = parametri.
|
|
17
|
-
se_stessa.nome_campo_relazionato = parametri.
|
|
15
|
+
se_stessa.nome_ripostiglio = parametri.prendi(:ripostiglio, nullo)
|
|
16
|
+
se_stessa.nome_campo = parametri.prendi(:nome_campo, nullo)
|
|
17
|
+
se_stessa.nome_campo_relazionato = parametri.prendi(:nome_campo_relazionato, nullo)
|
|
18
18
|
|
|
19
19
|
alza NonValida, "È necessario specificare una chiave :ripostiglio per la relazione" se
|
|
20
20
|
nome_ripostiglio.nullo?
|
|
@@ -67,7 +67,7 @@ modulo Mangusta
|
|
|
67
67
|
definisci _risolvi_ha_molti(documento)
|
|
68
68
|
se @documenti_in_memoria.esiste?
|
|
69
69
|
@documenti_in_memoria.seleziona esegui |documento_relazionato|
|
|
70
|
-
documento_relazionato.nome_campo_relazionato == documento._id
|
|
70
|
+
documento_relazionato.ottieni_valore(nome_campo_relazionato) == documento._id
|
|
71
71
|
fine
|
|
72
72
|
altrimenti
|
|
73
73
|
_ripostiglio.cerca(nome_campo_relazionato => documento._id).lista
|
|
@@ -114,13 +114,14 @@ modulo Mangusta
|
|
|
114
114
|
fine
|
|
115
115
|
|
|
116
116
|
collezione_relazionata = Mangusta.connessione[_ripostiglio._nome_collezione]
|
|
117
|
-
ricerca_documenti_relazionati = Mappa[_id: Mappa["$in": documenti_relazionati]]
|
|
118
117
|
|
|
119
118
|
se documenti_relazionati.almeno_uno?
|
|
119
|
+
ricerca_documenti_relazionati = Mappa[_id: Mappa["$in": documenti_relazionati]]
|
|
120
120
|
collezione_relazionata.aggiorna_molti ricerca_documenti_relazionati,
|
|
121
121
|
"$addToSet" => Mappa[nome_campo_relazionato => documento._id]
|
|
122
122
|
altrimenti
|
|
123
|
-
|
|
123
|
+
ricerca_documenti_relazionati = Mappa(nome_campo_relazionato => Mappa("$type": "array"))
|
|
124
|
+
collezione_relazionata.aggiorna_molti ricerca_documenti_relazionati,
|
|
124
125
|
"$pullAll" => Mappa[nome_campo_relazionato => [ documento._id ]]
|
|
125
126
|
fine
|
|
126
127
|
fine
|
data/lib/mangusta/ripostiglio.ir
CHANGED
|
@@ -93,9 +93,10 @@ modulo Mangusta
|
|
|
93
93
|
alza "L'argomento passato deve essere un #{_nome_classe_documento} o una Mappa" se
|
|
94
94
|
documento.non_è_un? _classe_documento e documento.non_è_una? Mappa
|
|
95
95
|
|
|
96
|
-
documento_in_json = Mangusta::Utilità.converti_in_json
|
|
96
|
+
documento_in_json = Mangusta::Utilità.converti_in_json documento
|
|
97
97
|
documento_in_json.deposita :_id, IdOggetto.nuovo se documento_in_json.non_ha_chiave? :_id
|
|
98
98
|
_collezione.inserisci_uno documento_in_json
|
|
99
|
+
|
|
99
100
|
documento = Mangusta::Utilità.converti_in_documento documento, _classe_documento
|
|
100
101
|
_propaga_relazioni documento, documento_in_json
|
|
101
102
|
documento
|
|
@@ -117,10 +118,13 @@ modulo Mangusta
|
|
|
117
118
|
alza "Il primo argomento deve essere una Stringa o un documento" a_meno_che
|
|
118
119
|
documento.è_una? Stringa o documento.risponde_a? :_id
|
|
119
120
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
cerca_per_id
|
|
121
|
+
documento = cerca_per_id id_documento.in_id se documento.è_una? Stringa
|
|
122
|
+
_collezione.aggiorna_uno Mappa[_id: documento._id], Mappa["$set" => valori_da_aggiornare]
|
|
123
|
+
|
|
124
|
+
documento = cerca_per_id documento._id
|
|
125
|
+
documento_in_json = Mangusta::Utilità.converti_in_json documento
|
|
126
|
+
_propaga_relazioni documento, documento_in_json
|
|
127
|
+
documento
|
|
124
128
|
fine
|
|
125
129
|
|
|
126
130
|
##
|
|
@@ -189,7 +193,7 @@ modulo Mangusta
|
|
|
189
193
|
definisci _propaga_relazioni(documento, documento_in_json)
|
|
190
194
|
_classe_documento.relazioni.per_ognuna esegui |relazione|
|
|
191
195
|
se documento_in_json.ha_chiave? relazione.nome_campo
|
|
192
|
-
relazione.propaga documento, documento_in_json.
|
|
196
|
+
relazione.propaga documento, documento_in_json.prendi(relazione.nome_campo)
|
|
193
197
|
fine
|
|
194
198
|
fine
|
|
195
199
|
fine
|
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.4.
|
|
4
|
+
version: 0.4.6
|
|
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-06-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: italian-ruby
|