iris-rb 0.4.6 → 0.5.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: b5689e9464c048693ee0f67e51d2b1ca6ce9f628d965ebbb6aff58b240aa6672
4
- data.tar.gz: 5f26ccf2a16d560af7c1342d8b0acba56a092b21b76df504903ff6e82a9cc389
3
+ metadata.gz: a755655dcf8f31c8e4c0648da47df1961d424fbbf1615be9cfb08a2c7577b633
4
+ data.tar.gz: f418618d0a3ddf7bb0efd4ec84e8c53ff0852d82e9531bf992be45023169da6a
5
5
  SHA512:
6
- metadata.gz: d993d39cac3fcaebc90a2858458d22964661b41d3973c2201b3c8a90edffee68abd1c629da30de09c75dd22c9dfd5ffebbe4b149a540b935b19ad376984614e1
7
- data.tar.gz: 75ba83a6699e471ce2bd719437ed1717d118a1215cf66c043654230e71f7174b66d75ef56a8b8e06906a2378f53aa6afecaf3f6517800ae366c60b3c3676de76
6
+ metadata.gz: e1fd99d2ecc90ad5fa8d9a34bac29d666001b257744f70ba85cbf8d88544e651ef625ce72cf9abf7eb7955ff784bc4b20879bc455eaf6f210886c3cf08e3bd05
7
+ data.tar.gz: 10c33264e8d5e752ff43d61be35f8a47f92d18e877b64a06e8620c8de7c9dcaf1783cc3d9bc9153978f2e86ffcf219203e7374e0e26919f8777ab4c12679824c
@@ -139,7 +139,7 @@ modulo Iris
139
139
  definisci _imposta_variabili_istanza(richiesta)
140
140
  @richiesta = richiesta
141
141
  @richiesta["iris.parametri"] ||= Mappa.nuova
142
- @tipo_contenuto = richiesta.ottieni "CONTENT_TYPE", "application/json"
142
+ @tipo_contenuto = richiesta.prendi "CONTENT_TYPE", "application/json"
143
143
  @stato = 200
144
144
  @intestazioni = INTESTAZIONI_PREDEFINITE.clona
145
145
  @corpo = nullo
@@ -1,3 +1,5 @@
1
+ richiedi_relativo "parametri/parametro"
2
+
1
3
  modulo Iris
2
4
  modulo Azione
3
5
  ##
@@ -67,17 +69,21 @@ modulo Iris
67
69
  fine
68
70
 
69
71
  ##
70
- # Esegue un controllo su un parametro obbligatoriol
71
- definisci obbligatorio(parametro, *opzioni, **tipo_elementi_lista, &blocco)
72
- _controlla parametro, _opzioni_parametro(*opzioni, **tipo_elementi_lista, &blocco)
73
- .fondi(obbligatorio: si), &blocco
72
+ # Esegue un controllo su un parametro obbligatorio.
73
+ # Quando un parametro obbligatorio non viene passato, oppure viene passato
74
+ # con valore nullo o stringa vuota, viene generato un errore.
75
+ definisci obbligatorio(parametro, *opzioni_parametro, **opzioni_lista, &blocco)
76
+ _inizializza parametro, :obbligatorio, *opzioni_parametro, **opzioni_lista, &blocco
74
77
  fine
75
78
 
76
79
  ##
77
80
  # Esegue un controllo su un parametro opzionale.
78
- definisci opzionale(parametro, *opzioni, **tipo_elementi_lista, &blocco)
79
- _controlla parametro, _opzioni_parametro(*opzioni, **tipo_elementi_lista, &blocco)
80
- .fondi(obbligatorio: no), &blocco
81
+ # Quando un parametro opzionale non viene passato, non viene generato un errore.
82
+ # Se però esso viene passato, e con valore nullo o stringa vuota, allora
83
+ # viene generato un errore, a meno che non sia stato specificato come
84
+ # annullabile.
85
+ definisci opzionale(parametro, *opzioni_parametro, **opzioni_lista, &blocco)
86
+ _inizializza parametro, :opzionale, *opzioni_parametro, **opzioni_lista, &blocco
81
87
  fine
82
88
 
83
89
  ##
@@ -88,8 +94,10 @@ modulo Iris
88
94
  # includi Iris::Azione
89
95
  #
90
96
  # definisci valida_parametri
97
+ # parametri.obbligatorio :prezzo, :decimale
98
+ #
91
99
  # parametri.regola "il prezzo deve essere maggiore di zero" esegui
92
- # parametri.ottieni(:prezzo) > 0.0
100
+ # parametri.prendi(:prezzo) > 0.0
93
101
  # fine
94
102
  # fine
95
103
  # fine
@@ -103,6 +111,7 @@ modulo Iris
103
111
 
104
112
  regola_rispettata = si
105
113
  regola_rispettata = blocco.avvia se blocco.esiste?
114
+
106
115
  se regola_rispettata == no
107
116
  @validi = no
108
117
  @errori.deposita :regole, [] se @errori.non_ha_chiave? :regole
@@ -113,211 +122,28 @@ modulo Iris
113
122
  privati
114
123
 
115
124
  ##
116
- # Esegue il controllo sul parametro.
117
- definisci _controlla(parametro,
118
- obbligatorio: si, annullabile: si,
119
- tipo_desiderato: :stringa, tipo_desiderato_elementi_lista: nullo, &blocco)
120
- valore_parametro = @parametri_originali.ottieni parametro, nullo
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
127
-
128
- cattura :controllo_terminato esegui
129
- _segnala_presenza_obbligatoria_su parametro se obbligatorio == si e @parametri_originali.non_ha_chiave? parametro
130
-
131
- se @parametri_originali.ha_chiave? parametro
132
- _segnala_non_annullabile_su parametro se annullabile == no e valore_parametro.non_specificato?
133
- _segnala_tipo_non_valido_su parametro, tipo_desiderato se tipo_non_corrispondente?(valore_parametro, tipo_desiderato)
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
-
139
- @parametri_processati.deposita parametro, valore_parametro
140
- fine
141
-
142
- _controlla_annidato parametro, valore_parametro, tipo_desiderato, obbligatorio, &blocco se blocco.esiste?
143
- fine
144
- fine
145
-
146
- ##
147
- # Esegue il controllo annidato sul parametro.
148
- definisci _controlla_annidato(parametro, valore_parametro, tipo_desiderato, obbligatorio, &blocco)
149
- se obbligatorio == si
150
- _segnala_tipo_non_valido_su parametro, :mappa se valore_parametro.non_è_una? Mappa e tipo_desiderato == :mappa
151
- _segnala_tipo_non_valido_su parametro, :lista se valore_parametro.non_è_una? Lista e tipo_desiderato == :lista
152
- fine
153
- lancia :controllo_terminato se valore_parametro.nullo?
154
-
155
- _controllo_annidato_mappa parametro, valore_parametro, &blocco se tipo_desiderato == :mappa
156
- _controllo_annidato_lista parametro, valore_parametro, &blocco se tipo_desiderato == :lista
125
+ # Inizializza un parametro da controllare.
126
+ definisci _inizializza(parametro, obbligatorietà, *opzioni_parametro, **opzioni_lista, &blocco)
127
+ valore = @parametri_originali.prendi parametro, nullo
128
+ opzioni_parametro |= [ :mappa ] se blocco_dato?
129
+ parametro = Parametro.nuovo parametro, valore, obbligatorietà,
130
+ *opzioni_parametro, **opzioni_lista
131
+ _valida parametro, &blocco
157
132
  fine
158
133
 
159
134
  ##
160
- # Esege il controllo annidato su un parametro di tipo mappa.
161
- definisci _controllo_annidato_mappa(parametro, valore_parametro, &blocco)
162
- parametri_annidati = Parametri.nuovo valore_parametro
163
- blocco.avvia parametri_annidati
164
- @validi = (@validi e parametri_annidati.validi?)
165
- @parametri_processati.deposita parametro, parametri_annidati.in_mappa se @validi == si
166
- @errori.deposita parametro, parametri_annidati.errori se parametri_annidati.errati?
167
- fine
135
+ # Esegue la validazione di un singolo parametro.
136
+ definisci _valida(parametro, &blocco)
137
+ parametro.valida @parametri_originali, &blocco
168
138
 
169
- ##
170
- # Esege il controllo annidato su un parametro di tipo lista.
171
- definisci _controllo_annidato_lista(parametro, valore_parametro, &blocco)
172
- elementi_processati = []
173
- errori_trovati = []
174
-
175
- valore_parametro.per_ognuno.con_indice esegui |elemento, indice|
176
- parametri_elemento = Parametri.nuovo elemento
177
- blocco.avvia parametri_elemento
178
- @validi = (@validi e parametri_elemento.validi?)
179
- elementi_processati << parametri_elemento.in_mappa se @validi == si
180
- errori_trovati << parametri_elemento.errori.fondi(_indice: indice) se parametri_elemento.errati?
139
+ se parametro.valido? e @parametri_originali.ha_chiave? parametro.nome
140
+ @parametri_processati.deposita parametro.nome, parametro.valore
181
141
  fine
182
142
 
183
- @parametri_processati.deposita parametro, elementi_processati se @validi == si
184
- @errori.deposita parametro, errori_trovati se errori_trovati.almeno_uno?
185
- fine
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
-
197
- ##
198
- # Recupera le opzioni del parametro, ovvero tipo e annullabilità.
199
- definisci _opzioni_parametro(*opzioni, **tipo_elementi_lista, &blocco)
200
- mappa_opzioni = Mappa[annullabile: no, tipo_desiderato: :stringa]
201
- mappa_opzioni.deposita :annullabile, si se opzioni.include? :annullabile
202
- considera
203
- quando opzioni.include?(:booleano)
204
- mappa_opzioni.deposita :tipo_desiderato, :booleano
205
- quando opzioni.include?(:data)
206
- mappa_opzioni.deposita :tipo_desiderato, :data
207
- quando opzioni.include?(:stringa)
208
- mappa_opzioni.deposita :tipo_desiderato, :stringa
209
- quando opzioni.include?(:simbolo)
210
- mappa_opzioni.deposita :tipo_desiderato, :simbolo
211
- quando opzioni.include?(:id_oggetto)
212
- mappa_opzioni.deposita :tipo_desiderato, :id_oggetto
213
- quando opzioni.include?(:intero)
214
- mappa_opzioni.deposita :tipo_desiderato, :intero
215
- quando opzioni.include?(:decimale)
216
- mappa_opzioni.deposita :tipo_desiderato, :decimale
217
- quando opzioni.include?(:lista)
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
222
- quando opzioni.include?(:mappa)
223
- mappa_opzioni.deposita :tipo_desiderato, :mappa
143
+ se parametro.errato?
144
+ @validi = no
145
+ @errori.deposita parametro.nome, parametro.errore
224
146
  fine
225
- mappa_opzioni.deposita :tipo_desiderato, :mappa se blocco.esiste? e opzioni.non_include? :lista
226
- mappa_opzioni
227
- fine
228
-
229
- ##
230
- # Segnala che un parametro deve per forza essere passato.
231
- definisci _segnala_presenza_obbligatoria_su(parametro)
232
- @validi = no
233
- @errori.deposita parametro, "è obbligatorio."
234
- lancia :controllo_terminato
235
- fine
236
-
237
- ##
238
- # Segnala che un parametro non può essere nullo.
239
- definisci _segnala_non_annullabile_su(parametro)
240
- @validi = no
241
- @errori.deposita parametro, "non deve essere nullo."
242
- lancia :controllo_terminato
243
- fine
244
-
245
- ##
246
- # Segnala che un parametro deve essere del tipo specificato.
247
- definisci _segnala_tipo_non_valido_su(parametro, tipo_desiderato)
248
- @validi = no
249
- @errori.deposita parametro, "deve essere #{_messaggio_per tipo_desiderato}."
250
- lancia :controllo_terminato
251
- fine
252
-
253
- ##
254
- # Applica conversioni sul valore parametro in base al tipo desiderato.
255
- definisci _applica_conversioni_su(valore_parametro, tipo_desiderato)
256
- considera tipo_desiderato
257
- quando :id_oggetto, :id_oggetti
258
- valore_parametro.in_id
259
- quando :simbolo, :simboli
260
- valore_parametro.in_simbolo
261
- quando :data, :date
262
- Data.strptime(valore_parametro, "%Y-%m-%d")
263
- altrimenti
264
- valore_parametro
265
- fine
266
- recupera
267
- valore_parametro
268
- fine
269
-
270
- ##
271
- # Determina se il tipo del valore di un parametro è corrispondente
272
- # a quello desiderato.
273
- definisci tipo_non_corrispondente?(valore_parametro, tipo_desiderato)
274
- ritorna no se valore_parametro.non_specificato?
275
-
276
- considera tipo_desiderato
277
- quando :intero, :interi, :decimale, :decimali
278
- ritorna si se valore_parametro.non_è_un? Numerico
279
- quando :booleano, :booleani
280
- ritorna si se valore_parametro.non_è_un? TrueClass e valore_parametro.non_è_un? FalseClass
281
- quando :data, :date
282
- ritorna si se valore_parametro.non_è_una? Data
283
- quando :stringa, :stringhe
284
- ritorna si se valore_parametro.non_è_una? Stringa
285
- quando :simbolo, :simboli
286
- ritorna si se valore_parametro.non_è_una? Simbolo
287
- quando :id_oggetto, :id_oggetti
288
- ritorna si se valore_parametro.non_è_un? IdOggetto
289
- quando :lista, :liste
290
- ritorna si se valore_parametro.non_è_una? Lista
291
- quando :mappa, :mappe
292
- ritorna si se valore_parametro.non_è_una? Mappa
293
- fine
294
-
295
- no
296
- fine
297
-
298
- ##
299
- # Messaggio per il tipo parametro.
300
- definisci _messaggio_per(tipo_parametro)
301
- considera tipo_parametro
302
- quando :booleano allora "un booleano"
303
- quando :booleani allora "una lista di booleani"
304
- quando :data allora "una data"
305
- quando :date allora "una lista di date"
306
- quando :stringa allora "una stringa"
307
- quando :stringhe allora "una lista di stringhe"
308
- quando :simbolo allora "una stringa"
309
- quando :simboli allora "una lista di simboli"
310
- quando :id_oggetto allora "un id oggetto"
311
- quando :id_oggetti allora "una lista di id oggetti"
312
- quando :intero allora "un numero intero"
313
- quando :interi allora "una lista di numeri interi"
314
- quando :decimale allora "un numero decimale"
315
- quando :decimali allora "una lista di numeri decimali"
316
- quando :lista allora "una lista"
317
- quando :liste allora "una lista di liste"
318
- quando :mappa allora "un oggetto"
319
- quando :mappe allora "una lista di oggetti"
320
- altrimenti nullo fine
321
147
  fine
322
148
 
323
149
  fine
@@ -0,0 +1,266 @@
1
+ modulo Iris
2
+ modulo Azione
3
+ classe Parametri
4
+ ##
5
+ # Un parametro è un singolo elemento di una mappa di Parametri.
6
+ classe Parametro
7
+
8
+ ##
9
+ # Tipi disponibili.
10
+ TIPI = [ :booleano, :data, :stringa, :simbolo, :id_oggetto, :intero, :decimale, :mappa, :lista ].congela
11
+
12
+ accessore :nome, :valore,
13
+ :valido, :errore,
14
+ :obbligatorio, :opzionale, :annullabile,
15
+ :tipi_desiderati, :tipi_elementi_lista
16
+
17
+ alias :obbligatorio? :obbligatorio
18
+ alias :opzionale? :opzionale
19
+ alias :annullabile? :annullabile
20
+ alias :valido? :valido
21
+
22
+ definisci inizializzatore(nome, valore_originale, obbligatorietà, *opzioni, di: nulla)
23
+ @nome = nome
24
+ @annullabile = _estrai_annullabilità_da *opzioni
25
+ @tipi_desiderati = _estrai_tipi_desiderati_da *opzioni
26
+ @tipi_elementi_lista = [ di ].appiattisci.compatta
27
+ @valido = si
28
+ @valore = _esegui_conversione_tipo_su valore_originale
29
+
30
+ considera obbligatorietà
31
+ quando :obbligatorio
32
+ @obbligatorio = si
33
+ @opzionale = no
34
+ quando :opzionale
35
+ @obbligtorio = no
36
+ @opzionale = si
37
+ altrimenti
38
+ alza "il parametro deve essere `obbligatorio` o `opzionale`"
39
+ fine
40
+ fine
41
+
42
+ ##
43
+ # Valida il parametro.
44
+ definisci valida(parametri_originali, &blocco)
45
+ @parametri_originali = parametri_originali
46
+
47
+ cattura :controllo_terminato esegui
48
+ _segnala_presenza_obbligatoria se obbligatorio? e @parametri_originali.non_ha_chiave? nome
49
+ _segnala_non_annullabile se annullabile? == no e @parametri_originali.ha_chiave? nome
50
+ _segnala_tipo_non_valido se tipi_desiderati.tutti? { |tipo| _tipo_non_corrispondente? tipo }
51
+ _controlla_tipi_elementi_lista se tipi_elementi_lista.almeno_uno?
52
+ _controlla_annidato &blocco se blocco_dato?
53
+ fine
54
+ fine
55
+
56
+ ##
57
+ # Determina se il parametro ha errori.
58
+ definisci errato?
59
+ !valido?
60
+ fine
61
+
62
+ privati
63
+
64
+ ##
65
+ # Estrae l'annullabilità dalle opzioni.
66
+ definisci _estrai_annullabilità_da(*opzioni)
67
+ se opzioni.include? :annullabile
68
+ @annullabile = si
69
+ altrimenti
70
+ @annullabile = no
71
+ fine
72
+ fine
73
+
74
+ ##
75
+ # Estrae i tipi desiderati dalle opzioni.
76
+ definisci _estrai_tipi_desiderati_da(*opzioni)
77
+ tipi_estratti = opzioni.seleziona esegui |opzione|
78
+ opzione.in? TIPI e opzione != :annullabile
79
+ fine
80
+ tipi_non_riconosciuti = opzioni - tipi_estratti - [ :annullabile ]
81
+ se tipi_non_riconosciuti.almeno_una?
82
+ alza "i tipi `#{tipi_non_riconosciuti.unisci(", ")}` non sono supportati"
83
+ fine
84
+ tipi_estratti = [ :stringa ] se tipi_estratti.nessuno?
85
+ tipi_estratti
86
+ fine
87
+
88
+ ##
89
+ # Esegue la conversione di tipo sul valore.
90
+ definisci _esegui_conversione_tipo_su(valore_originale, tipi = tipi_desiderati)
91
+ se valore_originale.è_una? Lista e tipi.include? :lista
92
+ lista = valore_originale
93
+ ritorna _esegui_conversione_tipo_su_ogni_elemento_della lista
94
+ fine
95
+
96
+ considera tipi.primo
97
+ quando :id_oggetto, :id_oggetti
98
+ valore_originale.in_id
99
+ quando :simbolo, :simboli
100
+ valore_originale.in_simbolo
101
+ quando :data, :date
102
+ Data.strptime(valore_originale, "%Y-%m-%d")
103
+ quando :stringa
104
+ valore_originale.specificato? ? valore_originale : nullo
105
+ altrimenti
106
+ valore_originale
107
+ fine
108
+ recupera
109
+ valore_originale
110
+ fine
111
+
112
+ ##
113
+ # Esegue la conversione dei tipi su ogni elemento della lista.
114
+ definisci _esegui_conversione_tipo_su_ogni_elemento_della(lista)
115
+ lista.mappa esegui |valore_originale|
116
+ _esegui_conversione_tipo_su valore_originale, tipi_elementi_lista
117
+ fine
118
+ fine
119
+
120
+ ##
121
+ # Segnala che un parametro deve per forza essere passato.
122
+ definisci _segnala_presenza_obbligatoria
123
+ @valido = no
124
+ @errore = "è obbligatorio."
125
+ lancia :controllo_terminato
126
+ fine
127
+
128
+ ##
129
+ # Segnala che un parametro non può essere nullo.
130
+ definisci _segnala_non_annullabile
131
+ ritorna se valore.specificato?
132
+ @valido = no
133
+ @errore = "non deve essere nullo."
134
+ lancia :controllo_terminato
135
+ fine
136
+
137
+ ##
138
+ # Segnala che un parametro deve essere uno dei tipi specificati.
139
+ definisci _segnala_tipo_non_valido(tipi = tipi_desiderati)
140
+ @valido = no
141
+ @errore = "deve essere #{_messaggio_per tipi}."
142
+ lancia :controllo_terminato
143
+ fine
144
+
145
+ ##
146
+ # Controlla che gli elementi della lista siano tutti del tipo desiderato.
147
+ definisci _controlla_tipi_elementi_lista
148
+ ritorna se tipi_desiderati.non_include? :lista o valore.non_è_una? Lista
149
+
150
+ lista = valore
151
+ lista.per_ognuno esegui |elemento|
152
+ se tipi_elementi_lista.tutti? { |tipo| _tipo_non_corrispondente? tipo, elemento }
153
+ _segnala_tipo_non_valido tipi_elementi_lista
154
+ fine
155
+ fine
156
+ fine
157
+
158
+ ##
159
+ # Controlla i parametri annidati.
160
+ definisci _controlla_annidato(&blocco)
161
+ ritorna se tipi_desiderati.non_include? :mappa e tipi_desiderati.non_include? :lista
162
+ ritorna se valore.nullo?
163
+
164
+ se valore.è_una? Mappa
165
+ _controllo_annidato_mappa &blocco
166
+ fine
167
+
168
+ se valore.è_una? Lista
169
+ _controllo_annidato_lista valore, &blocco
170
+ fine
171
+ fine
172
+
173
+ ##
174
+ # Controlla i parametri annidati su mappa.
175
+ definisci _controllo_annidato_mappa(&blocco)
176
+ parametri_annidati = Iris::Azione::Parametri.nuovo valore
177
+ blocco.avvia parametri_annidati
178
+ @valido = (@valido e parametri_annidati.validi?)
179
+ @valore = parametri_annidati.in_mappa se parametri_annidati.validi?
180
+ @errore = parametri_annidati.errori se parametri_annidati.errati?
181
+ fine
182
+
183
+ ##
184
+ # Controlla i parametri annidati su lista.
185
+ definisci _controllo_annidato_lista(lista, &blocco)
186
+ elementi_processati = []
187
+
188
+ lista.per_ognuno.con_indice esegui |elemento, indice|
189
+ parametri_elemento = Iris::Azione::Parametri.nuovo elemento
190
+ blocco.avvia parametri_elemento
191
+ se parametri_elemento.validi?
192
+ elementi_processati << parametri_elemento.in_mappa
193
+ altrimenti
194
+ @valido = no
195
+ @errore = Mappa("elemento alla posizione #{indice}:" => parametri_elemento.errori)
196
+ fine
197
+ fine
198
+
199
+ @valore = elementi_processati se valido?
200
+ fine
201
+
202
+ ##
203
+ # Determina se il tipo del valore di un parametro è corrispondente
204
+ # a quello desiderato.
205
+ definisci _tipo_non_corrispondente?(tipo_desiderato, valore_da_controllare = valore)
206
+ ritorna no se valore_da_controllare.non_specificato?
207
+
208
+ considera tipo_desiderato
209
+ quando :intero, :interi, :decimale, :decimali
210
+ ritorna si se valore_da_controllare.non_è_un? Numerico
211
+ quando :booleano, :booleani
212
+ ritorna si se valore_da_controllare.non_è_un? TrueClass e valore_da_controllare.non_è_un? FalseClass
213
+ quando :data, :date
214
+ ritorna si se valore_da_controllare.non_è_una? Data
215
+ quando :stringa, :stringhe
216
+ ritorna si se valore_da_controllare.non_è_una? Stringa
217
+ quando :simbolo, :simboli
218
+ ritorna si se valore_da_controllare.non_è_una? Simbolo
219
+ quando :id_oggetto, :id_oggetti
220
+ ritorna si se valore_da_controllare.non_è_un? IdOggetto
221
+ quando :lista, :liste
222
+ ritorna si se valore_da_controllare.non_è_una? Lista
223
+ quando :mappa, :mappe
224
+ ritorna si se valore_da_controllare.non_è_una? Mappa
225
+ altrimenti
226
+ alza "tipo `#{tipo_desiderato}` non supportato"
227
+ fine
228
+
229
+ no
230
+ fine
231
+
232
+ ##
233
+ # Messaggio per il tipo parametro.
234
+ definisci _messaggio_per(tipi = tipi_desiderati)
235
+ lista_messaggi = []
236
+
237
+ tipi.per_ognuno esegui |tipo_desiderato|
238
+ considera tipo_desiderato
239
+ quando :booleano allora lista_messaggi << "un booleano"
240
+ quando :booleani allora lista_messaggi << "una lista di booleani"
241
+ quando :data allora lista_messaggi << "una data"
242
+ quando :date allora lista_messaggi << "una lista di date"
243
+ quando :stringa allora lista_messaggi << "una stringa"
244
+ quando :stringhe allora lista_messaggi << "una lista di stringhe"
245
+ quando :simbolo allora lista_messaggi << "una stringa"
246
+ quando :simboli allora lista_messaggi << "una lista di simboli"
247
+ quando :id_oggetto allora lista_messaggi << "un id oggetto"
248
+ quando :id_oggetti allora lista_messaggi << "una lista di id oggetti"
249
+ quando :intero allora lista_messaggi << "un numero intero"
250
+ quando :interi allora lista_messaggi << "una lista di numeri interi"
251
+ quando :decimale allora lista_messaggi << "un numero decimale"
252
+ quando :decimali allora lista_messaggi << "una lista di numeri decimali"
253
+ quando :lista allora lista_messaggi << "una lista"
254
+ quando :liste allora lista_messaggi << "una lista di liste"
255
+ quando :mappa allora lista_messaggi << "un oggetto"
256
+ quando :mappe allora lista_messaggi << "una lista di oggetti"
257
+ fine
258
+ fine
259
+
260
+ lista_messaggi.unisci(" o ")
261
+ fine
262
+
263
+ fine
264
+ fine
265
+ fine
266
+ fine
@@ -89,7 +89,7 @@ modulo Iris
89
89
  ##
90
90
  # Definisce una rotta.
91
91
  definisci rotta(percorso_rotta, **opzioni)
92
- azione = opzioni.ottieni :verso
92
+ azione = opzioni.prendi :verso
93
93
  nome_metodo = __callee__
94
94
  percorso_completo = [ @percorso_padre, percorso_rotta ].unisci
95
95
  alza "Metodo `#{nome_metodo}` non supportato. I metodi supportati per le rotte "\
@@ -1,3 +1,3 @@
1
1
  modulo Iris
2
- VERSIONE = "0.4.6"
2
+ VERSIONE = "0.5.0"
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.6
4
+ version: 0.5.0
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-28 00:00:00.000000000 Z
11
+ date: 2020-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: italian-ruby
@@ -74,6 +74,7 @@ files:
74
74
  - lib/iris/azione.ir
75
75
  - lib/iris/azione/intestazioni.ir
76
76
  - lib/iris/azione/parametri.ir
77
+ - lib/iris/azione/parametri/parametro.ir
77
78
  - lib/iris/load.rb
78
79
  - lib/iris/navigatore.ir
79
80
  - lib/iris/navigatore/percorso.ir