iris-rb 0.4.1 → 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 +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
|