iris-rb 0.4.0 → 0.4.5
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/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
|