iris-rb 0.4.0 → 0.4.5
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/Gemfile.lock +4 -2
- data/lib/iris.ir +2 -2
- data/lib/iris/azione.ir +20 -9
- data/lib/iris/azione/parametri.ir +24 -3
- 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: 4fa52e407d3eb32800626af2aafd73a39b069090241d011001f21679ae930f7e
|
4
|
+
data.tar.gz: a9697a348d118c5fdd825ef3d4477ddd8fc81628326a67fe30cd5fa6dd5e6a98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d98d801290c2ed30eb20a11c22aefaffb0d3bd257982c61b014097cc6a42047f20f305cb62cc0c95fc75be08827b8e403f3db13b0fa1b35352acf77f7cfc1b7
|
7
|
+
data.tar.gz: 3051d7a9c7f9717b99e05104f4a21e21742ca23856274ba5c0485d193a63c97409c73790aad3911f668ab55864e57a7499f50f59b56d4b5c4d75cbc20dadc7be
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
iris-rb (0.
|
4
|
+
iris-rb (0.4.0)
|
5
|
+
bson (~> 4.8)
|
5
6
|
italian-ruby (~> 0.1)
|
6
7
|
rack (~> 2.2)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: https://rubygems.org/
|
10
11
|
specs:
|
12
|
+
bson (4.8.2)
|
11
13
|
diff-lcs (1.3)
|
12
|
-
italian-ruby (0.
|
14
|
+
italian-ruby (0.3.0)
|
13
15
|
ruby2ruby (~> 2.4)
|
14
16
|
rack (2.2.2)
|
15
17
|
rake (12.3.3)
|
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.
|
@@ -114,8 +114,7 @@ modulo Iris
|
|
114
114
|
# Esegue il controllo sul parametro.
|
115
115
|
definisci _controlla(parametro, obbligatorio: si, annullabile: si, tipo_desiderato: :stringa, &blocco)
|
116
116
|
valore_parametro = @parametri_originali.ottieni parametro, nullo
|
117
|
-
valore_parametro =
|
118
|
-
valore_parametro = Data.strptime(valore_parametro, "%Y-%m-%d") recupera valore_parametro
|
117
|
+
valore_parametro = _applica_conversioni_su valore_parametro, tipo_desiderato
|
119
118
|
|
120
119
|
cattura :controllo_terminato esegui
|
121
120
|
_segnala_presenza_obbligatoria_su parametro se obbligatorio == si e @parametri_originali.non_ha_chiave? parametro
|
@@ -184,6 +183,8 @@ modulo Iris
|
|
184
183
|
mappa_opzioni.deposita :tipo_desiderato, :data
|
185
184
|
quando opzioni.include?(:stringa)
|
186
185
|
mappa_opzioni.deposita :tipo_desiderato, :stringa
|
186
|
+
quando opzioni.include?(:simbolo)
|
187
|
+
mappa_opzioni.deposita :tipo_desiderato, :simbolo
|
187
188
|
quando opzioni.include?(:id_oggetto)
|
188
189
|
mappa_opzioni.deposita :tipo_desiderato, :id_oggetto
|
189
190
|
quando opzioni.include?(:intero)
|
@@ -223,6 +224,23 @@ modulo Iris
|
|
223
224
|
lancia :controllo_terminato
|
224
225
|
fine
|
225
226
|
|
227
|
+
##
|
228
|
+
# Applica conversioni sul valore parametro in base al tipo desiderato.
|
229
|
+
definisci _applica_conversioni_su(valore_parametro, tipo_desiderato)
|
230
|
+
considera tipo_desiderato
|
231
|
+
quando :id_oggetto
|
232
|
+
valore_parametro.in_id
|
233
|
+
quando :simbolo
|
234
|
+
valore_parametro.in_simbolo
|
235
|
+
quando :data
|
236
|
+
Data.strptime(valore_parametro, "%Y-%m-%d")
|
237
|
+
altrimenti
|
238
|
+
valore_parametro
|
239
|
+
fine
|
240
|
+
recupera
|
241
|
+
valore_parametro
|
242
|
+
fine
|
243
|
+
|
226
244
|
##
|
227
245
|
# Determina se il tipo del valore di un parametro è corrispondente
|
228
246
|
# a quello desiderato.
|
@@ -238,8 +256,10 @@ modulo Iris
|
|
238
256
|
ritorna si se valore_parametro.non_è_una? Data
|
239
257
|
quando :stringa
|
240
258
|
ritorna si se valore_parametro.non_è_una? Stringa
|
259
|
+
quando :simbolo
|
260
|
+
ritorna si se valore_parametro.non_è_una? Simbolo
|
241
261
|
quando :id_oggetto
|
242
|
-
ritorna si se valore_parametro.non_è_un?
|
262
|
+
ritorna si se valore_parametro.non_è_un? IdOggetto
|
243
263
|
quando :lista
|
244
264
|
ritorna si se valore_parametro.non_è_una? Lista
|
245
265
|
quando :mappa
|
@@ -256,6 +276,7 @@ modulo Iris
|
|
256
276
|
quando :booleano allora "un booleano"
|
257
277
|
quando :data allora "una data"
|
258
278
|
quando :stringa allora "una stringa"
|
279
|
+
quando :simbolo allora "una stringa"
|
259
280
|
quando :id_oggetto allora "un id oggetto"
|
260
281
|
quando :intero allora "un numero intero"
|
261
282
|
quando :decimale allora "un numero decimale"
|
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.5
|
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-27 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
|