iris-rb 0.4.6 → 0.5.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: 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