iris-rb 0.4.5 → 0.4.6

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: 4fa52e407d3eb32800626af2aafd73a39b069090241d011001f21679ae930f7e
4
- data.tar.gz: a9697a348d118c5fdd825ef3d4477ddd8fc81628326a67fe30cd5fa6dd5e6a98
3
+ metadata.gz: b5689e9464c048693ee0f67e51d2b1ca6ce9f628d965ebbb6aff58b240aa6672
4
+ data.tar.gz: 5f26ccf2a16d560af7c1342d8b0acba56a092b21b76df504903ff6e82a9cc389
5
5
  SHA512:
6
- metadata.gz: 2d98d801290c2ed30eb20a11c22aefaffb0d3bd257982c61b014097cc6a42047f20f305cb62cc0c95fc75be08827b8e403f3db13b0fa1b35352acf77f7cfc1b7
7
- data.tar.gz: 3051d7a9c7f9717b99e05104f4a21e21742ca23856274ba5c0485d193a63c97409c73790aad3911f668ab55864e57a7499f50f59b56d4b5c4d75cbc20dadc7be
6
+ metadata.gz: d993d39cac3fcaebc90a2858458d22964661b41d3973c2201b3c8a90edffee68abd1c629da30de09c75dd22c9dfd5ffebbe4b149a540b935b19ad376984614e1
7
+ data.tar.gz: 75ba83a6699e471ce2bd719437ed1717d118a1215cf66c043654230e71f7174b66d75ef56a8b8e06906a2378f53aa6afecaf3f6517800ae366c60b3c3676de76
@@ -68,14 +68,16 @@ modulo Iris
68
68
 
69
69
  ##
70
70
  # Esegue un controllo su un parametro obbligatoriol
71
- definisci obbligatorio(parametro, *opzioni, &blocco)
72
- _controlla parametro, _opzioni_parametro(*opzioni, &blocco).fondi(obbligatorio: si), &blocco
71
+ definisci obbligatorio(parametro, *opzioni, **tipo_elementi_lista, &blocco)
72
+ _controlla parametro, _opzioni_parametro(*opzioni, **tipo_elementi_lista, &blocco)
73
+ .fondi(obbligatorio: si), &blocco
73
74
  fine
74
75
 
75
76
  ##
76
77
  # Esegue un controllo su un parametro opzionale.
77
- definisci opzionale(parametro, *opzioni, &blocco)
78
- _controlla parametro, _opzioni_parametro(*opzioni, &blocco).fondi(obbligatorio: no), &blocco
78
+ definisci opzionale(parametro, *opzioni, **tipo_elementi_lista, &blocco)
79
+ _controlla parametro, _opzioni_parametro(*opzioni, **tipo_elementi_lista, &blocco)
80
+ .fondi(obbligatorio: no), &blocco
79
81
  fine
80
82
 
81
83
  ##
@@ -112,9 +114,16 @@ modulo Iris
112
114
 
113
115
  ##
114
116
  # Esegue il controllo sul parametro.
115
- definisci _controlla(parametro, obbligatorio: si, annullabile: si, tipo_desiderato: :stringa, &blocco)
117
+ definisci _controlla(parametro,
118
+ obbligatorio: si, annullabile: si,
119
+ tipo_desiderato: :stringa, tipo_desiderato_elementi_lista: nullo, &blocco)
116
120
  valore_parametro = @parametri_originali.ottieni parametro, nullo
117
121
  valore_parametro = _applica_conversioni_su valore_parametro, tipo_desiderato
122
+ se valore_parametro.è_una? Lista e tipo_desiderato_elementi_lista.specificato?
123
+ valore_parametro = valore_parametro.mappa esegui |valore|
124
+ _applica_conversioni_su valore, tipo_desiderato_elementi_lista
125
+ fine
126
+ fine
118
127
 
119
128
  cattura :controllo_terminato esegui
120
129
  _segnala_presenza_obbligatoria_su parametro se obbligatorio == si e @parametri_originali.non_ha_chiave? parametro
@@ -123,6 +132,10 @@ modulo Iris
123
132
  _segnala_non_annullabile_su parametro se annullabile == no e valore_parametro.non_specificato?
124
133
  _segnala_tipo_non_valido_su parametro, tipo_desiderato se tipo_non_corrispondente?(valore_parametro, tipo_desiderato)
125
134
  valore_parametro = nullo se valore_parametro.non_specificato?
135
+
136
+ _controlla_elementi_lista parametro, valore_parametro, tipo_desiderato_elementi_lista se
137
+ tipo_desiderato == :lista e tipo_desiderato_elementi_lista.specificato?
138
+
126
139
  @parametri_processati.deposita parametro, valore_parametro
127
140
  fine
128
141
 
@@ -171,9 +184,19 @@ modulo Iris
171
184
  @errori.deposita parametro, errori_trovati se errori_trovati.almeno_uno?
172
185
  fine
173
186
 
187
+ ##
188
+ # Controllo che gli elementi della lista siano tutti del tipo desiderato.
189
+ definisci _controlla_elementi_lista(parametro, valore_parametro, tipo_desiderato_elementi_lista)
190
+ ritorna se valore_parametro.non_è_una? Lista
191
+
192
+ se valore_parametro.almeno_uno? { |valore| tipo_non_corrispondente? valore, tipo_desiderato_elementi_lista }
193
+ _segnala_tipo_non_valido_su parametro, tipo_desiderato_elementi_lista
194
+ fine
195
+ fine
196
+
174
197
  ##
175
198
  # Recupera le opzioni del parametro, ovvero tipo e annullabilità.
176
- definisci _opzioni_parametro(*opzioni, &blocco)
199
+ definisci _opzioni_parametro(*opzioni, **tipo_elementi_lista, &blocco)
177
200
  mappa_opzioni = Mappa[annullabile: no, tipo_desiderato: :stringa]
178
201
  mappa_opzioni.deposita :annullabile, si se opzioni.include? :annullabile
179
202
  considera
@@ -193,6 +216,9 @@ modulo Iris
193
216
  mappa_opzioni.deposita :tipo_desiderato, :decimale
194
217
  quando opzioni.include?(:lista)
195
218
  mappa_opzioni.deposita :tipo_desiderato, :lista
219
+ se tipo_elementi_lista.ha_chiave? :di
220
+ mappa_opzioni.deposita :tipo_desiderato_elementi_lista, tipo_elementi_lista.ottieni(:di)
221
+ fine
196
222
  quando opzioni.include?(:mappa)
197
223
  mappa_opzioni.deposita :tipo_desiderato, :mappa
198
224
  fine
@@ -228,11 +254,11 @@ modulo Iris
228
254
  # Applica conversioni sul valore parametro in base al tipo desiderato.
229
255
  definisci _applica_conversioni_su(valore_parametro, tipo_desiderato)
230
256
  considera tipo_desiderato
231
- quando :id_oggetto
257
+ quando :id_oggetto, :id_oggetti
232
258
  valore_parametro.in_id
233
- quando :simbolo
259
+ quando :simbolo, :simboli
234
260
  valore_parametro.in_simbolo
235
- quando :data
261
+ quando :data, :date
236
262
  Data.strptime(valore_parametro, "%Y-%m-%d")
237
263
  altrimenti
238
264
  valore_parametro
@@ -248,21 +274,21 @@ modulo Iris
248
274
  ritorna no se valore_parametro.non_specificato?
249
275
 
250
276
  considera tipo_desiderato
251
- quando :intero, :decimale
277
+ quando :intero, :interi, :decimale, :decimali
252
278
  ritorna si se valore_parametro.non_è_un? Numerico
253
- quando :booleano
279
+ quando :booleano, :booleani
254
280
  ritorna si se valore_parametro.non_è_un? TrueClass e valore_parametro.non_è_un? FalseClass
255
- quando :data
281
+ quando :data, :date
256
282
  ritorna si se valore_parametro.non_è_una? Data
257
- quando :stringa
283
+ quando :stringa, :stringhe
258
284
  ritorna si se valore_parametro.non_è_una? Stringa
259
- quando :simbolo
285
+ quando :simbolo, :simboli
260
286
  ritorna si se valore_parametro.non_è_una? Simbolo
261
- quando :id_oggetto
287
+ quando :id_oggetto, :id_oggetti
262
288
  ritorna si se valore_parametro.non_è_un? IdOggetto
263
- quando :lista
289
+ quando :lista, :liste
264
290
  ritorna si se valore_parametro.non_è_una? Lista
265
- quando :mappa
291
+ quando :mappa, :mappe
266
292
  ritorna si se valore_parametro.non_è_una? Mappa
267
293
  fine
268
294
 
@@ -274,14 +300,23 @@ modulo Iris
274
300
  definisci _messaggio_per(tipo_parametro)
275
301
  considera tipo_parametro
276
302
  quando :booleano allora "un booleano"
303
+ quando :booleani allora "una lista di booleani"
277
304
  quando :data allora "una data"
305
+ quando :date allora "una lista di date"
278
306
  quando :stringa allora "una stringa"
307
+ quando :stringhe allora "una lista di stringhe"
279
308
  quando :simbolo allora "una stringa"
309
+ quando :simboli allora "una lista di simboli"
280
310
  quando :id_oggetto allora "un id oggetto"
311
+ quando :id_oggetti allora "una lista di id oggetti"
281
312
  quando :intero allora "un numero intero"
313
+ quando :interi allora "una lista di numeri interi"
282
314
  quando :decimale allora "un numero decimale"
315
+ quando :decimali allora "una lista di numeri decimali"
283
316
  quando :lista allora "una lista"
317
+ quando :liste allora "una lista di liste"
284
318
  quando :mappa allora "un oggetto"
319
+ quando :mappe allora "una lista di oggetti"
285
320
  altrimenti nullo fine
286
321
  fine
287
322
 
@@ -1,3 +1,3 @@
1
1
  modulo Iris
2
- VERSIONE = "0.4.5"
2
+ VERSIONE = "0.4.6"
3
3
  fine
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iris-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
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-05-27 00:00:00.000000000 Z
11
+ date: 2020-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: italian-ruby