iris-rb 0.5.0 → 0.5.1

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 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