iris-rb 0.3.2 → 0.4.0

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