iris-rb 0.5.0 → 0.5.1

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: a755655dcf8f31c8e4c0648da47df1961d424fbbf1615be9cfb08a2c7577b633
4
- data.tar.gz: f418618d0a3ddf7bb0efd4ec84e8c53ff0852d82e9531bf992be45023169da6a
3
+ metadata.gz: c0c0f2b700cf6afa534162c4494b9462d4c7bf1a05300d76f55ea138c57d579a
4
+ data.tar.gz: d100c0e76b78fe2687199286b0b2e2090f39e42b66f312a4afaed4e0bf9eb185
5
5
  SHA512:
6
- metadata.gz: e1fd99d2ecc90ad5fa8d9a34bac29d666001b257744f70ba85cbf8d88544e651ef625ce72cf9abf7eb7955ff784bc4b20879bc455eaf6f210886c3cf08e3bd05
7
- data.tar.gz: 10c33264e8d5e752ff43d61be35f8a47f92d18e877b64a06e8620c8de7c9dcaf1783cc3d9bc9153978f2e86ffcf219203e7374e0e26919f8777ab4c12679824c
6
+ metadata.gz: ef257008011ae9d9f125808504eb6fc907ca03f48f5bf67245c94f9475c707b34ee6238a0dd373d2a18dca1159f33a382dd979efe74230782b411007fb293cab
7
+ data.tar.gz: ecd52d67b889be73879f48ce4ebe7f04313e255dffc5c7bf5c15ccbe3cc4b8fe140e0add0f64ab6624f6a25e2bb1315d04e5cd0f80fdc29af6bee1fbd81fae3d
@@ -53,6 +53,10 @@ modulo Iris
53
53
  "X-Frame-Options" => Intestazioni::OPZIONI_FRAME,
54
54
  "X-XSS-Protection" => Intestazioni::PROTEZIONE_CROSS_SITE_SCRIPTING]
55
55
 
56
+ ##
57
+ # Codifiche corpo supportate (oltre a UTF-8).
58
+ CODIFICHE_SUPPORTATE = [ "ISO-8859-1", "ASCII-8BIT" ].congela
59
+
56
60
  ##
57
61
  # Metodo principale eseguito per risolvere l'azione.
58
62
  definisci _avvia(richiesta)
@@ -152,6 +156,15 @@ modulo Iris
152
156
  @parametri = Parametri.nuovo @richiesta["iris.parametri"]
153
157
  fine
154
158
 
159
+ ##
160
+ # Converte il corpo multipart.
161
+ definisci _converti_corpo_multipart
162
+ ritorna se @tipo_contenuto.non_inizia_con? "multipart/form-data"
163
+ @richiesta["iris.parametri"].fondi! Rack::Multipart.parse_multipart(@richiesta).simbolizza
164
+ recupera Errore => errore
165
+ arresta 400, errore: "Errore nella conversione del contenuto multipart fornito."
166
+ fine
167
+
155
168
  ##
156
169
  # Converte il corpo della richiesta in JSON.
157
170
  definisci _converti_corpo_in_json
@@ -160,6 +173,7 @@ modulo Iris
160
173
  corpo = @richiesta["rack.input"].read
161
174
  ritorna se corpo.non_specificato?
162
175
 
176
+ corpo_codificato = _codifica_corpo_in_utf8 corpo
163
177
  corpo_convertito = (JSON.processa corpo).simbolizza
164
178
  @richiesta["iris.parametri"].fondi! corpo_convertito se corpo_convertito.è_una? Mappa
165
179
  @richiesta["iris.parametri"].fondi! Mappa(_corpo: corpo_convertito) se corpo_convertito.non_è_una? Mappa
@@ -169,6 +183,20 @@ modulo Iris
169
183
  arresta 400, errore: "Il corpo fornito non è un JSON valido."
170
184
  fine
171
185
 
186
+ ##
187
+ # Codifica il corpo in UTF-8.
188
+ definisci _codifica_corpo_in_utf8(corpo)
189
+ corpo_già_in_utf8 = corpo.forza_codifica_a("UTF-8").codifica_valida?
190
+ ritorna corpo.codifica_in("UTF-8") se corpo_già_in_utf8
191
+
192
+ CODIFICHE_SUPPORTATE.per_ognuna esegui |codifica|
193
+ codifica_valida = corpo.forza_codifica_a(codifica).codifica_valida?
194
+ ritorna corpo.codifica_in(codifica) se codifica_valida
195
+ fine
196
+
197
+ corpo
198
+ fine
199
+
172
200
  ##
173
201
  # Converte i parametri della richiesta passati come interrogazione.
174
202
  definisci _converti_parametri_interrogazione
@@ -177,15 +205,6 @@ modulo Iris
177
205
  @richiesta["iris.parametri"].fondi! Rack::Utils.parse_nested_query(parametri_stringa_interrogazione).simbolizza
178
206
  fine
179
207
 
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
-
189
208
  ##
190
209
  # Questo modulo serve per eseguire il codice del metodo `_avvia`
191
210
  # anche quando viene ridefinito nella classe includente.
@@ -1,3 +1,3 @@
1
1
  modulo Iris
2
- VERSIONE = "0.5.0"
2
+ VERSIONE = "0.5.1"
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.5.0
4
+ version: 0.5.1
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-06-03 00:00:00.000000000 Z
11
+ date: 2020-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: italian-ruby