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: 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