mangusta 0.2.1 → 0.2.2
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 +2 -2
- data/lib/mangusta/core_ext/mongo.rb +0 -1
- data/lib/mangusta/documento/incorporato.ir +8 -8
- data/lib/mangusta/documento.ir +14 -7
- data/lib/mangusta/ripostiglio/risultato_ricerca.ir +40 -2
- data/lib/mangusta/utilit/303/240/convertitori.ir +53 -19
- 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: 3ee95909c98b1608b6fa9d93c138f00330275ddb0a3ebc34348552b0de514500
|
4
|
+
data.tar.gz: c436453dc1ef4990e92c01f8bd96c9b6554a355f2169495e61846f3bcb561760
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8622487602a774da378be2e5141130d79b3e3e8ec063d5b77315542c10d3be3f270af2477a7bd0b6b85f268d9ea8b1a30e6f4883975d67e87b9bacffb5940a0e
|
7
|
+
data.tar.gz: 3716536c0423a9ee466d656e3bba3d6a4d0b92245aa3ae39660aa53fe3e0466fd80a04b3bd93484e54095043355769c54d6e692b0cfdb470af553a26594345ea
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mangusta (0.2.
|
4
|
+
mangusta (0.2.1)
|
5
5
|
italian-ruby (~> 0.1)
|
6
6
|
mongo (~> 2.11)
|
7
7
|
|
@@ -10,7 +10,7 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
bson (4.8.2)
|
12
12
|
diff-lcs (1.3)
|
13
|
-
italian-ruby (0.2.
|
13
|
+
italian-ruby (0.2.5)
|
14
14
|
ruby2ruby (~> 2.4)
|
15
15
|
mongo (2.11.4)
|
16
16
|
bson (>= 4.4.2, < 5.0.0)
|
@@ -19,7 +19,7 @@ modulo Mangusta
|
|
19
19
|
##
|
20
20
|
# Ottiene il valore per questo documento incorporato.
|
21
21
|
definisci ottieni(padre)
|
22
|
-
valore_originale = padre.
|
22
|
+
valore_originale = padre.ottieni_valore nome
|
23
23
|
ritorna _inizializza_documento_incorporato(padre) se valore_originale.non_esiste?
|
24
24
|
|
25
25
|
considera tipologia
|
@@ -31,7 +31,7 @@ modulo Mangusta
|
|
31
31
|
fine
|
32
32
|
fine
|
33
33
|
|
34
|
-
padre.
|
34
|
+
padre.ottieni_valore nome
|
35
35
|
fine
|
36
36
|
|
37
37
|
##
|
@@ -47,10 +47,10 @@ modulo Mangusta
|
|
47
47
|
.converti_in_documento valore.fondi(_padre: padre), _classe_documento
|
48
48
|
altrimenti
|
49
49
|
documento_incorporato = valore
|
50
|
-
documento_incorporato.
|
50
|
+
documento_incorporato.imposta_valore :_padre, padre
|
51
51
|
fine
|
52
52
|
|
53
|
-
padre.
|
53
|
+
padre.imposta_valore nome, documento_incorporato
|
54
54
|
documento_incorporato
|
55
55
|
quando :multiplo
|
56
56
|
alza NonValido, "L'argomento passato deve essere una Lista" se valore.non_è_una? Lista
|
@@ -67,11 +67,11 @@ modulo Mangusta
|
|
67
67
|
altrimenti
|
68
68
|
documenti_incorporati = valore
|
69
69
|
documenti_incorporati.per_ognuno esegui |documento_incorporato|
|
70
|
-
documento_incorporato.
|
70
|
+
documento_incorporato.imposta_valore :_padre, padre
|
71
71
|
fine
|
72
72
|
fine
|
73
73
|
|
74
|
-
padre.
|
74
|
+
padre.imposta_valore nome, documenti_incorporati
|
75
75
|
documenti_incorporati
|
76
76
|
fine
|
77
77
|
fine
|
@@ -90,13 +90,13 @@ modulo Mangusta
|
|
90
90
|
considera tipologia
|
91
91
|
quando :singolo
|
92
92
|
documento_incorporato = _classe_documento.nuovo valore.fondi(_padre: padre)
|
93
|
-
padre.
|
93
|
+
padre.imposta_valore nome, documento_incorporato
|
94
94
|
documento_incorporato
|
95
95
|
quando :multiplo
|
96
96
|
documenti_incorporati = valore.mappa esegui |singolo_valore|
|
97
97
|
_classe_documento.nuovo valore.fondi(_padre: padre)
|
98
98
|
fine
|
99
|
-
padre.
|
99
|
+
padre.imposta_valore nome, documenti_incorporati
|
100
100
|
documenti_incorporati
|
101
101
|
fine
|
102
102
|
fine
|
data/lib/mangusta/documento.ir
CHANGED
@@ -36,7 +36,7 @@ modulo Mangusta
|
|
36
36
|
fine
|
37
37
|
|
38
38
|
assegna **attributi
|
39
|
-
_genera_nuovo_id se
|
39
|
+
_genera_nuovo_id se ottieni_valore(:_id).nullo?
|
40
40
|
_genera_documento_padre **attributi se attributi.ha_chiave? :_padre
|
41
41
|
_memorizza_attributi_originali **attributi
|
42
42
|
fine
|
@@ -61,21 +61,28 @@ modulo Mangusta
|
|
61
61
|
|
62
62
|
##
|
63
63
|
# Recupera il valore di un campo del documento.
|
64
|
-
definisci
|
64
|
+
definisci ottieni_valore(nome_campo)
|
65
65
|
ottieni_variabile_istanza "@#{nome_campo}"
|
66
66
|
fine
|
67
67
|
|
68
68
|
##
|
69
69
|
# Imposta il valore di un campo del documento.
|
70
|
-
definisci
|
70
|
+
definisci imposta_valore(nome_campo, valore_campo)
|
71
71
|
imposta_variabile_istanza "@#{nome_campo}", valore_campo
|
72
72
|
fine
|
73
73
|
|
74
74
|
##
|
75
75
|
# Ottiene la rappresentazione per stampa dell'oggetto.
|
76
76
|
definisci inspect
|
77
|
-
|
78
|
-
|
77
|
+
"#<#{se_stesso.classe} #{Mangusta::Utilità.converti_in_json(se_stesso)}>"
|
78
|
+
fine
|
79
|
+
definisci ai(opzioni = Mappa.nuova)
|
80
|
+
se definito? AwesomePrint
|
81
|
+
ap = AwesomePrint::Inspector.nuovo opzioni
|
82
|
+
ap.awesome Mangusta::Utilità.converti_in_json(se_stesso)
|
83
|
+
altrimenti
|
84
|
+
inspect
|
85
|
+
fine
|
79
86
|
fine
|
80
87
|
|
81
88
|
##
|
@@ -89,7 +96,7 @@ modulo Mangusta
|
|
89
96
|
fine
|
90
97
|
|
91
98
|
campi_da_esporre.per_ognuno esegui |campo|
|
92
|
-
valore_campo =
|
99
|
+
valore_campo = ottieni_valore(campo.nome)
|
93
100
|
valore_campo = valore_campo.to_s se valore_campo.è_un? BSON::ObjectId
|
94
101
|
risultato.deposita campo.nome, valore_campo
|
95
102
|
fine
|
@@ -135,7 +142,7 @@ modulo Mangusta
|
|
135
142
|
##
|
136
143
|
# Genera un nuovo id.
|
137
144
|
definisci _genera_nuovo_id
|
138
|
-
|
145
|
+
imposta_valore :_id, BSON::ObjectId.new
|
139
146
|
fine
|
140
147
|
|
141
148
|
##
|
@@ -3,6 +3,7 @@ modulo Mangusta
|
|
3
3
|
classe RisultatoRicerca
|
4
4
|
|
5
5
|
accessore :parametri_ricerca
|
6
|
+
accessore :relazioni_incluse
|
6
7
|
|
7
8
|
definisci inizializzatore(collezione, classe_documento, parametri, ordinamento = Mappa.nuova)
|
8
9
|
@collezione = collezione
|
@@ -11,27 +12,64 @@ modulo Mangusta
|
|
11
12
|
@ordinamento_ricerca = ordinamento
|
12
13
|
fine
|
13
14
|
|
15
|
+
##
|
16
|
+
# Prende il primo elemento trovato.
|
14
17
|
definisci primo
|
15
18
|
documento_in_json = @collezione.cerca(@parametri_ricerca, @ordinamento_ricerca).primo
|
16
|
-
|
19
|
+
_converti documento_in_json
|
17
20
|
fine
|
21
|
+
alias :prima :primo
|
18
22
|
|
23
|
+
##
|
24
|
+
# Prende l'ultimo elemento trovato.
|
25
|
+
definisci ultimo
|
26
|
+
documento_in_json = @collezione.cerca(@parametri_ricerca, @ordinamento_ricerca).lista.ultimo
|
27
|
+
fine
|
28
|
+
alias :ultima :ultimo
|
29
|
+
|
30
|
+
##
|
31
|
+
# Ritorna l'oggetto ricerca come Lista documenti.
|
19
32
|
definisci lista
|
20
33
|
@collezione.cerca(@parametri_ricerca, @ordinamento_ricerca).lista.mappa esegui |documento_in_json|
|
21
|
-
|
34
|
+
_converti documento_in_json
|
22
35
|
fine
|
23
36
|
fine
|
24
37
|
|
38
|
+
##
|
39
|
+
# Aggiunge parametri alla ricerca.
|
25
40
|
definisci cerca(**nuovi_parametri_ricerca)
|
26
41
|
@parametri_ricerca.fondi! nuovi_parametri_ricerca
|
27
42
|
se_stessa
|
28
43
|
fine
|
29
44
|
|
45
|
+
##
|
46
|
+
# Conta i risultati.
|
30
47
|
definisci conteggio
|
31
48
|
@collezione.cerca(@parametri_ricerca, @ordinamento_ricerca).count
|
32
49
|
fine
|
33
50
|
alias :conteggia :conteggio
|
34
51
|
|
52
|
+
##
|
53
|
+
# Include relazioni del documento.
|
54
|
+
definisci includi_relazioni(*relazioni_da_includere)
|
55
|
+
relazioni_da_includere.per_ognuna esegui |nome_relazione_da_includere|
|
56
|
+
relazione = @classe_documento.relazioni.trova esegui |relazione|
|
57
|
+
relazione.nome == nome_relazione_da_includere
|
58
|
+
fine
|
59
|
+
prossima se relazione.nulla?
|
60
|
+
@relazioni_incluse << relazione
|
61
|
+
fine
|
62
|
+
se_stessa
|
63
|
+
fine
|
64
|
+
|
65
|
+
privati
|
66
|
+
|
67
|
+
##
|
68
|
+
# Converte in documento.
|
69
|
+
definisci _converti(mappa)
|
70
|
+
Mangusta::Utilità.converti_in_documento mappa, @classe_documento
|
71
|
+
fine
|
72
|
+
|
35
73
|
fine
|
36
74
|
fine
|
37
75
|
fine
|
@@ -1,40 +1,74 @@
|
|
1
1
|
modulo Mangusta
|
2
2
|
modulo Utilità
|
3
3
|
|
4
|
+
##
|
5
|
+
# Converte un documento in json.
|
4
6
|
definisci se_stessa.converti_in_json(documento)
|
5
7
|
ritorna documento se documento.è_una? Mappa
|
6
|
-
alza "L'oggetto passato non include Mangusta::Documento" a_meno_che
|
8
|
+
alza "L'oggetto passato non include Mangusta::Documento" a_meno_che
|
9
|
+
documento.classe.moduli_inclusi.include? Mangusta::Documento
|
7
10
|
|
8
11
|
documento_convertito = Mappa.nuova
|
12
|
+
|
9
13
|
documento.campi.per_ognuno esegui |campo|
|
10
|
-
valore_campo = documento.
|
14
|
+
valore_campo = documento.ottieni_valore campo.nome
|
11
15
|
prossimo se valore_campo.nullo?
|
12
16
|
documento_convertito.deposita campo.nome, valore_campo
|
13
17
|
fine
|
14
18
|
|
15
|
-
documento.
|
16
|
-
|
17
|
-
prossimo se
|
18
|
-
|
19
|
-
|
20
|
-
valore_documento_incorporato = converti_in_json(valore_documento_incorporato) se
|
21
|
-
valore_documento_incorporato.non_è_una? Mappa
|
22
|
-
quando :multiplo
|
23
|
-
valore_documento_incorporato = valore_documento_incorporato.mappa esegui |singolo_valore|
|
24
|
-
se singolo_valore.non_è_una? Mappa
|
25
|
-
converti_in_json singolo_valore
|
26
|
-
altrimenti
|
27
|
-
singolo_valore
|
28
|
-
fine
|
29
|
-
fine
|
30
|
-
fine
|
19
|
+
documento.relazioni.per_ognuna esegui |relazione|
|
20
|
+
relazione_convertita = converti_documento_relazionato_in_json documento, relazione
|
21
|
+
prossimo se relazione_convertita.nulla?
|
22
|
+
documento_convertito.deposita relazione.nome, relazione_convertita
|
23
|
+
fine
|
31
24
|
|
32
|
-
|
25
|
+
documento.documenti_incorporati.per_ognuno esegui |documento_incorporato|
|
26
|
+
documento_incorporato_convertito = converti_documento_incorporato_in_json documento, documento_incorporato
|
27
|
+
prossimo se documento_incorporato_convertito.nullo?
|
28
|
+
documento_convertito.deposita documento_incorporato.nome, documento_incorporato_convertito
|
33
29
|
fine
|
34
30
|
|
35
31
|
documento_convertito
|
36
32
|
fine
|
37
33
|
|
34
|
+
##
|
35
|
+
# Converte un documento incorporato in json.
|
36
|
+
definisci se_stessa.converti_documento_incorporato_in_json(documento, documento_incorporato)
|
37
|
+
valore_documento_incorporato = documento.ottieni_valore documento_incorporato.nome
|
38
|
+
ritorna nullo se valore_documento_incorporato.nullo?
|
39
|
+
|
40
|
+
considera documento_incorporato.tipologia
|
41
|
+
quando :singolo
|
42
|
+
ritorna valore_documento_incorporato se valore_documento_incorporato.è_una? Mappa
|
43
|
+
converti_in_json(valore_documento_incorporato)
|
44
|
+
quando :multiplo
|
45
|
+
valore_documento_incorporato.mappa esegui |singolo_valore|
|
46
|
+
prossimo singolo_valore se singolo_valore.è_una? Mappa
|
47
|
+
converti_in_json singolo_valore
|
48
|
+
fine
|
49
|
+
fine
|
50
|
+
fine
|
51
|
+
|
52
|
+
##
|
53
|
+
# Converte una relazione in json.
|
54
|
+
definisci se_stessa.converti_documento_relazionato_in_json(documento, relazione)
|
55
|
+
valore_relazione = documento.ottieni_valore relazione.nome
|
56
|
+
ritorna nullo se valore_relazione.nulla?
|
57
|
+
|
58
|
+
considera relazione.tipologia
|
59
|
+
quando :ha_uno, :appartiene_a
|
60
|
+
ritorna valore_relazione se valore_relazione.è_una? Mappa
|
61
|
+
converti_in_json(valore_relazione)
|
62
|
+
quando :ha_molti, :ha_e_appartiene_a_molti
|
63
|
+
valore_relazione.mappa esegui |singolo_valore|
|
64
|
+
prossimo singolo_valore se singolo_valore.è_una? Mappa
|
65
|
+
converti_in_json singolo_valore
|
66
|
+
fine
|
67
|
+
fine
|
68
|
+
fine
|
69
|
+
|
70
|
+
##
|
71
|
+
# Converte un json in documento.
|
38
72
|
definisci se_stessa.converti_in_documento(documento_in_json, classe_documento)
|
39
73
|
ritorna documento_in_json se documento_in_json.non_è_una? Mappa
|
40
74
|
classe_documento ||= Oggetto
|
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.2.
|
4
|
+
version: 0.2.2
|
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-04-
|
11
|
+
date: 2020-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: italian-ruby
|