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