mangusta 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49b950b29288f62b001196c2cc8e83b1674632fd2bee8bacef704e02fb005519
|
4
|
+
data.tar.gz: 43054e3798ef9d928e53e6d4447ca171baefcf8e541f8e52a7a9ab747f074ea5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2843f5cd6fcea9ca2cb309bf91126c9ea69657dcc71477f6882f03469027741e56539191c548f65e677aa487a36131f7dbf900c37670e7ffd3751ae72557eb07
|
7
|
+
data.tar.gz: 8dba3fe8fe669baba77432f0ba5d265decfeb81207b9117badf873292eb81b2c94a8cf789015741e21f24d0e88c80314f7cf06f36d201b2a8ea44a5ecc3d0e30
|
@@ -130,7 +130,7 @@ modulo Mangusta
|
|
130
130
|
|
131
131
|
campi_relazione_filtrati = @filtrati_richiesti.prendi relazione.nome
|
132
132
|
considera relazione.tipologia
|
133
|
-
quando :appartiene_a
|
133
|
+
quando :ha_un, :appartiene_a
|
134
134
|
documento_esposto.deposita relazione.nome, valore_relazione.esponi(*campi_relazione_filtrati)
|
135
135
|
quando :ha_molti, :ha_e_appartiene_a_molti
|
136
136
|
documento_esposto.deposita relazione.nome, valore_relazione
|
@@ -15,6 +15,15 @@ modulo Mangusta
|
|
15
15
|
_definisci_relazione nome, :appartiene_a, **opzioni
|
16
16
|
fine
|
17
17
|
|
18
|
+
##
|
19
|
+
# Aggiunge un metodo di classe `ha_un` per definire una relazione
|
20
|
+
# di appartenenza di un documento.
|
21
|
+
definisci ha_un(nome, **opzioni)
|
22
|
+
_definisci_relazione nome, :ha_un, **opzioni
|
23
|
+
fine
|
24
|
+
alias :ha_uno :ha_un
|
25
|
+
alias :ha_una :ha_un
|
26
|
+
|
18
27
|
##
|
19
28
|
# Aggiunge un metodo di classe `ha_molti` per definire una relazione
|
20
29
|
# di appartenenza di molti documenti.
|
@@ -26,13 +26,13 @@ modulo Mangusta
|
|
26
26
|
se_stessa.nome_campo_relazionato = parametri.prendi :nome_campo_relazionato, nullo
|
27
27
|
|
28
28
|
alza NonValida, "la relazione `#{tipologia}` non è supportata" se
|
29
|
-
tipologia.non_in? [ :appartiene_a, :ha_molti, :ha_e_appartiene_a_molti ]
|
29
|
+
tipologia.non_in? [ :appartiene_a, :ha_un, :ha_molti, :ha_e_appartiene_a_molti ]
|
30
30
|
alza NonValida, "è necessario specificare una chiave :ripostiglio per la relazione" se
|
31
31
|
nome_ripostiglio.nullo?
|
32
32
|
alza NonValida, "è necessario specificare una chiave :nome_campo per la relazione" se
|
33
33
|
nome_campo.nullo? e tipologia.in? [ :appartiene_a, :ha_e_appartiene_a_molti ]
|
34
34
|
alza NonValida, "è necessario specificare una chiave :nome_campo_relazionato per la relazione" se
|
35
|
-
nome_campo_relazionato.nullo? e tipologia.in? [ :ha_molti, :ha_e_appartiene_a_molti ]
|
35
|
+
nome_campo_relazionato.nullo? e tipologia.in? [ :ha_un, :ha_molti, :ha_e_appartiene_a_molti ]
|
36
36
|
fine
|
37
37
|
|
38
38
|
##
|
@@ -57,6 +57,7 @@ modulo Mangusta
|
|
57
57
|
# Risolve una relazione.
|
58
58
|
definisci risolvi(documento)
|
59
59
|
considera tipologia
|
60
|
+
quando :ha_un allora _risolvi_ha_un documento
|
60
61
|
quando :ha_molti allora _risolvi_ha_molti documento
|
61
62
|
quando :appartiene_a allora _risolvi_appartiene_a documento
|
62
63
|
quando :ha_e_appartiene_a_molti allora _risolvi_ha_e_appartiene_a_molti documento
|
@@ -68,6 +69,7 @@ modulo Mangusta
|
|
68
69
|
# Assegna una relazione.
|
69
70
|
definisci assegna(documento, valore)
|
70
71
|
considera tipologia
|
72
|
+
quando :ha_un allora ritorna
|
71
73
|
quando :ha_molti allora ritorna
|
72
74
|
quando :appartiene_a allora _assegna_appartiene_a documento, valore
|
73
75
|
quando :ha_e_appartiene_a_molti allora _assegna_ha_e_appartiene_a_molti documento, valore
|
@@ -78,6 +80,7 @@ modulo Mangusta
|
|
78
80
|
# Propaga la relazione con il valore passato.
|
79
81
|
definisci propaga(documento)
|
80
82
|
considera tipologia
|
83
|
+
quando :ha_un allora ritorna
|
81
84
|
quando :ha_molti allora ritorna
|
82
85
|
quando :appartiene_a allora ritorna
|
83
86
|
quando :ha_e_appartiene_a_molti allora _propaga_ha_e_appartiene_a_molti documento
|
@@ -86,6 +89,18 @@ modulo Mangusta
|
|
86
89
|
|
87
90
|
privati
|
88
91
|
|
92
|
+
##
|
93
|
+
# Risolve la relazione di `ha un`.
|
94
|
+
definisci _risolvi_ha_un(documento)
|
95
|
+
se @documenti_in_memoria.esiste?
|
96
|
+
@documenti_in_memoria.trova esegui |documento_relazionato|
|
97
|
+
documento_relazionato.manda(nome_campo_relazionato) == documento._id
|
98
|
+
fine
|
99
|
+
altrimenti
|
100
|
+
ripostiglio.cerca(nome_campo_relazionato => documento._id).primo
|
101
|
+
fine
|
102
|
+
fine
|
103
|
+
|
89
104
|
##
|
90
105
|
# Risolve la relazione di `ha molti`.
|
91
106
|
definisci _risolvi_ha_molti(documento)
|
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.5.
|
4
|
+
version: 0.5.1
|
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-06-
|
11
|
+
date: 2020-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: italian-ruby
|