iris-rb 0.3.2 → 0.4.0

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: acc464373637854e4df4b1ec52d0b5c3011cdab66ed0e164158444cd3a11ff75
4
- data.tar.gz: e1b165bc16641031df6a9310d842e81325e878e58219f208a5df997c7a6dbdbd
3
+ metadata.gz: 68911f908e35d53772b5e5d60eeb47d70af794ba154113f6549749573e8e9c9b
4
+ data.tar.gz: 5f535894c3caeeddbea68276f078e2727d3c14489807d7eb0f9ed3f0c84a9e3f
5
5
  SHA512:
6
- metadata.gz: '07179da5bc7b5aec3157b32dc7e57c32681a58ffc8129689ab00ca54e9625531e0e597e8b3525936341b7542726725a87c89d03ffd43d7f7f6e110ad29972226'
7
- data.tar.gz: 28735f1b9a5451d97742315f265ea4726b26c6079eee0fa257d0708fef51f9cef817cc59df326906b151428f681311cf134c16abf143c52b9eb24e19886cfc81
6
+ metadata.gz: 54fb48ff3c5c183b6cc711f9a34a84ad6269df3b84909f61b5d7e1aad8718459ec690d740feb754f8fcd49c2700a123bf188adb9cdd3aec28cbb8fe97949e364
7
+ data.tar.gz: a14097681c6021dd1e46f13dcc93e31481903d4236bea5fdb4544ebd6edd32389bfbe1028aec1b5e1b687532d7d09477808b07bec0a761666a60784b53c112f2
@@ -127,16 +127,26 @@ modulo Iris
127
127
  @parametri_processati.deposita parametro, valore_parametro
128
128
  fine
129
129
 
130
- _controlla_annidato parametro, valore_parametro, obbligatorio, &blocco se blocco.esiste?
130
+ _controlla_annidato parametro, valore_parametro, tipo_desiderato, obbligatorio, &blocco se blocco.esiste?
131
131
  fine
132
132
  fine
133
133
 
134
134
  ##
135
135
  # Esegue il controllo annidato sul parametro.
136
- definisci _controlla_annidato(parametro, valore_parametro, obbligatorio, &blocco)
137
- _segnala_annidamento_richiesto_su parametro se obbligatorio == si e valore_parametro.non_è_una? Mappa
136
+ definisci _controlla_annidato(parametro, valore_parametro, tipo_desiderato, obbligatorio, &blocco)
137
+ se obbligatorio == si
138
+ _segnala_tipo_non_valido_su parametro, :mappa se valore_parametro.non_è_una? Mappa e tipo_desiderato == :mappa
139
+ _segnala_tipo_non_valido_su parametro, :lista se valore_parametro.non_è_una? Lista e tipo_desiderato == :lista
140
+ fine
138
141
  lancia :controllo_terminato se valore_parametro.nullo?
139
142
 
143
+ _controllo_annidato_mappa parametro, valore_parametro, &blocco se tipo_desiderato == :mappa
144
+ _controllo_annidato_lista parametro, valore_parametro, &blocco se tipo_desiderato == :lista
145
+ fine
146
+
147
+ ##
148
+ # Esege il controllo annidato su un parametro di tipo mappa.
149
+ definisci _controllo_annidato_mappa(parametro, valore_parametro, &blocco)
140
150
  parametri_annidati = Parametri.nuovo valore_parametro
141
151
  blocco.avvia parametri_annidati
142
152
  @validi = (@validi e parametri_annidati.validi?)
@@ -144,6 +154,24 @@ modulo Iris
144
154
  @errori.deposita parametro, parametri_annidati.errori se parametri_annidati.errati?
145
155
  fine
146
156
 
157
+ ##
158
+ # Esege il controllo annidato su un parametro di tipo lista.
159
+ definisci _controllo_annidato_lista(parametro, valore_parametro, &blocco)
160
+ elementi_processati = []
161
+ errori_trovati = []
162
+
163
+ valore_parametro.per_ognuno.con_indice esegui |elemento, indice|
164
+ parametri_elemento = Parametri.nuovo elemento
165
+ blocco.avvia parametri_elemento
166
+ @validi = (@validi e parametri_elemento.validi?)
167
+ elementi_processati << parametri_elemento.in_mappa se @validi == si
168
+ errori_trovati << parametri_elemento.errori.fondi(_indice: indice) se parametri_elemento.errati?
169
+ fine
170
+
171
+ @parametri_processati.deposita parametro, elementi_processati se @validi == si
172
+ @errori.deposita parametro, errori_trovati se errori_trovati.almeno_uno?
173
+ fine
174
+
147
175
  ##
148
176
  # Recupera le opzioni del parametro, ovvero tipo e annullabilità.
149
177
  definisci _opzioni_parametro(*opzioni, &blocco)
@@ -167,7 +195,7 @@ modulo Iris
167
195
  quando opzioni.include?(:mappa)
168
196
  mappa_opzioni.deposita :tipo_desiderato, :mappa
169
197
  fine
170
- mappa_opzioni.deposita :tipo_desiderato, :mappa se blocco.esiste?
198
+ mappa_opzioni.deposita :tipo_desiderato, :mappa se blocco.esiste? e opzioni.non_include? :lista
171
199
  mappa_opzioni
172
200
  fine
173
201
 
@@ -187,14 +215,6 @@ modulo Iris
187
215
  lancia :controllo_terminato
188
216
  fine
189
217
 
190
- ##
191
- # Segnala che un parametro deve essere una Mappa innestata.
192
- definisci _segnala_annidamento_richiesto_su(parametro)
193
- @validi = no
194
- @errori.deposita parametro, "deve essere un oggetto."
195
- lancia :controllo_terminato
196
- fine
197
-
198
218
  ##
199
219
  # Segnala che un parametro deve essere del tipo specificato.
200
220
  definisci _segnala_tipo_non_valido_su(parametro, tipo_desiderato)
data/lib/iris/versione.ir CHANGED
@@ -1,3 +1,3 @@
1
1
  modulo Iris
2
- VERSIONE = "0.3.2"
2
+ VERSIONE = "0.4.0"
3
3
  fine
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iris-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Ballardin