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: 3025be0dedcde244996c477c8e879032a60a2e872aed4667f0858df3aec06be5
4
- data.tar.gz: 71c12d3fcd5bb8887527ea04bc6b767fdbcdf94e54a29613a9b4b60df3f2731b
3
+ metadata.gz: 49b950b29288f62b001196c2cc8e83b1674632fd2bee8bacef704e02fb005519
4
+ data.tar.gz: 43054e3798ef9d928e53e6d4447ca171baefcf8e541f8e52a7a9ab747f074ea5
5
5
  SHA512:
6
- metadata.gz: da37743a7de44df5814952d6e06df610cecb001b6cd9e989a54c3ca87a4ee99957a2809ee63fd0b3b188dcc94afb169e64361e31d4558a927835ff08078209e3
7
- data.tar.gz: df54fe5798baedc2a4492dfb5498965d053fd53e2ff380a49eb1c66d193c3f36fce57335a162cd93fa68bae21fa01b37bc58230685437bcada5a42dbdcbfe38b
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)
@@ -1,3 +1,3 @@
1
1
  modulo Mangusta
2
- VERSIONE = "0.5.0"
2
+ VERSIONE = "0.5.1"
3
3
  fine
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.0
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 00:00:00.000000000 Z
11
+ date: 2020-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: italian-ruby