mangusta 0.5.0 → 0.5.1
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
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
|