mangusta 0.4.1 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|