iris-rb 0.4.1 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/iris.ir +2 -2
- data/lib/iris/azione.ir +20 -9
- data/lib/iris/azione/parametri.ir +53 -18
- data/lib/iris/versione.ir +1 -1
- metadata +2 -3
- data/lib/iris/core_ext/string.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5689e9464c048693ee0f67e51d2b1ca6ce9f628d965ebbb6aff58b240aa6672
|
4
|
+
data.tar.gz: 5f26ccf2a16d560af7c1342d8b0acba56a092b21b76df504903ff6e82a9cc389
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d993d39cac3fcaebc90a2858458d22964661b41d3973c2201b3c8a90edffee68abd1c629da30de09c75dd22c9dfd5ffebbe4b149a540b935b19ad376984614e1
|
7
|
+
data.tar.gz: 75ba83a6699e471ce2bd719437ed1717d118a1215cf66c043654230e71f7174b66d75ef56a8b8e06906a2378f53aa6afecaf3f6517800ae366c60b3c3676de76
|
data/.gitignore
CHANGED
data/lib/iris.ir
CHANGED
data/lib/iris/azione.ir
CHANGED
@@ -59,6 +59,7 @@ modulo Iris
|
|
59
59
|
cattura :arresta esegui
|
60
60
|
_imposta_variabili_istanza richiesta
|
61
61
|
_converti_parametri_interrogazione
|
62
|
+
_converti_corpo_multipart
|
62
63
|
_converti_corpo_in_json
|
63
64
|
_inizializza_parametri
|
64
65
|
|
@@ -138,8 +139,9 @@ modulo Iris
|
|
138
139
|
definisci _imposta_variabili_istanza(richiesta)
|
139
140
|
@richiesta = richiesta
|
140
141
|
@richiesta["iris.parametri"] ||= Mappa.nuova
|
142
|
+
@tipo_contenuto = richiesta.ottieni "CONTENT_TYPE", "application/json"
|
141
143
|
@stato = 200
|
142
|
-
@intestazioni = INTESTAZIONI_PREDEFINITE
|
144
|
+
@intestazioni = INTESTAZIONI_PREDEFINITE.clona
|
143
145
|
@corpo = nullo
|
144
146
|
@registratore = Iris::Registratore.nuovo @richiesta
|
145
147
|
fine
|
@@ -154,27 +156,36 @@ modulo Iris
|
|
154
156
|
# Converte il corpo della richiesta in JSON.
|
155
157
|
definisci _converti_corpo_in_json
|
156
158
|
ritorna se @richiesta["rack.input"].nullo?
|
159
|
+
ritorna se @tipo_contenuto != "application/json"
|
157
160
|
corpo = @richiesta["rack.input"].read
|
158
161
|
ritorna se corpo.non_specificato?
|
159
162
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
recupera JSON::ParserError => errore
|
165
|
-
arresta 400, errore: "Il corpo fornito non è un JSON valido."
|
166
|
-
fine
|
163
|
+
corpo_convertito = (JSON.processa corpo).simbolizza
|
164
|
+
@richiesta["iris.parametri"].fondi! corpo_convertito se corpo_convertito.è_una? Mappa
|
165
|
+
@richiesta["iris.parametri"].fondi! Mappa(_corpo: corpo_convertito) se corpo_convertito.non_è_una? Mappa
|
166
|
+
@richiesta["iris.corpo"] = corpo_convertito
|
167
167
|
@richiesta["rack.input"].rewind
|
168
|
+
recupera JSON::ParserError => errore
|
169
|
+
arresta 400, errore: "Il corpo fornito non è un JSON valido."
|
168
170
|
fine
|
169
171
|
|
170
172
|
##
|
171
|
-
# Converte i parametri della richiesta.
|
173
|
+
# Converte i parametri della richiesta passati come interrogazione.
|
172
174
|
definisci _converti_parametri_interrogazione
|
173
175
|
ritorna a_meno_che @richiesta["REQUEST_URI"].specificato? e @richiesta["REQUEST_URI"].include?("?")
|
174
176
|
parametri_stringa_interrogazione = @richiesta["REQUEST_URI"].partiziona("?").ultimo
|
175
177
|
@richiesta["iris.parametri"].fondi! Rack::Utils.parse_nested_query(parametri_stringa_interrogazione).simbolizza
|
176
178
|
fine
|
177
179
|
|
180
|
+
##
|
181
|
+
# Converte il corpo multipart.
|
182
|
+
definisci _converti_corpo_multipart
|
183
|
+
ritorna se @tipo_contenuto.non_inizia_con? "multipart/form-data"
|
184
|
+
@richiesta["iris.parametri"].fondi! Rack::Multipart.parse_multipart(@richiesta).simbolizza
|
185
|
+
recupera Errore => errore
|
186
|
+
arresta 400, errore: "Errore nella conversione del contenuto multipart fornito."
|
187
|
+
fine
|
188
|
+
|
178
189
|
##
|
179
190
|
# Questo modulo serve per eseguire il codice del metodo `_avvia`
|
180
191
|
# anche quando viene ridefinito nella classe includente.
|
@@ -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,
|
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,
|
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,
|
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
|
262
|
-
ritorna si se valore_parametro.non_è_un?
|
263
|
-
quando :lista
|
287
|
+
quando :id_oggetto, :id_oggetti
|
288
|
+
ritorna si se valore_parametro.non_è_un? IdOggetto
|
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
|
|
data/lib/iris/versione.ir
CHANGED
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.
|
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-
|
11
|
+
date: 2020-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: italian-ruby
|
@@ -74,7 +74,6 @@ files:
|
|
74
74
|
- lib/iris/azione.ir
|
75
75
|
- lib/iris/azione/intestazioni.ir
|
76
76
|
- lib/iris/azione/parametri.ir
|
77
|
-
- lib/iris/core_ext/string.rb
|
78
77
|
- lib/iris/load.rb
|
79
78
|
- lib/iris/navigatore.ir
|
80
79
|
- lib/iris/navigatore/percorso.ir
|