iris-rb 0.1.9 → 0.1.10
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/Gemfile +2 -2
- data/Gemfile.lock +2 -19
- data/iris.gemspec +0 -2
- data/lib/iris/azione/parametri.ir +35 -30
- data/lib/iris/azione/registratore.ir +1 -1
- data/lib/iris/azione.ir +57 -23
- data/lib/iris/navigatore/percorso.ir +6 -0
- data/lib/iris/navigatore/rotta.ir +51 -0
- data/lib/iris/navigatore.ir +99 -0
- data/lib/iris/versione.ir +1 -1
- metadata +5 -30
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6586cd7083bf70634286b8bb7731b91266a324f0b6ceb39bae430a540b394fc7
|
|
4
|
+
data.tar.gz: e23cf1a70868a73adb81ac86a1b773d743a3eb0c123abd361eda1a2da8fe7a2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '0329abffd9cbfc8e741918348d770478ce5cb5f5f35d6282cd5a1891a47373b76f35974ffa311c2c1f5e9663174126facd170298d93e58ac8c2a8d699183a66b'
|
|
7
|
+
data.tar.gz: 65b178497909977691b415f71f1d9d948a69e989504162c24588c1094d261f745656de9852ceff212f22fe46b2fa2286835f950ea9d4e05365a0d68f78bac574
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
iris-rb (0.1.
|
|
5
|
-
hanami-router (~> 1.3)
|
|
6
|
-
hanami-utils (~> 1.3)
|
|
4
|
+
iris-rb (0.1.10)
|
|
7
5
|
italian-ruby (~> 0.1)
|
|
8
6
|
|
|
9
7
|
GEM
|
|
10
8
|
remote: https://rubygems.org/
|
|
11
9
|
specs:
|
|
12
|
-
concurrent-ruby (1.1.6)
|
|
13
10
|
diff-lcs (1.3)
|
|
14
|
-
|
|
15
|
-
hanami-utils (~> 1.3)
|
|
16
|
-
http_router (= 0.11.2)
|
|
17
|
-
rack (~> 2.0)
|
|
18
|
-
hanami-utils (1.3.6)
|
|
19
|
-
concurrent-ruby (~> 1.0)
|
|
20
|
-
transproc (~> 1.0)
|
|
21
|
-
http_router (0.11.2)
|
|
22
|
-
rack (>= 1.0.0)
|
|
23
|
-
url_mount (~> 0.2.1)
|
|
24
|
-
italian-ruby (0.1.10)
|
|
11
|
+
italian-ruby (0.1.13)
|
|
25
12
|
ruby2ruby (~> 2.4)
|
|
26
|
-
rack (2.2.2)
|
|
27
13
|
rake (12.3.3)
|
|
28
14
|
rspec (3.9.0)
|
|
29
15
|
rspec-core (~> 3.9.0)
|
|
@@ -44,9 +30,6 @@ GEM
|
|
|
44
30
|
ruby_parser (3.14.2)
|
|
45
31
|
sexp_processor (~> 4.9)
|
|
46
32
|
sexp_processor (4.14.1)
|
|
47
|
-
transproc (1.1.1)
|
|
48
|
-
url_mount (0.2.1)
|
|
49
|
-
rack
|
|
50
33
|
|
|
51
34
|
PLATFORMS
|
|
52
35
|
ruby
|
data/iris.gemspec
CHANGED
|
@@ -108,6 +108,39 @@ modulo Iris
|
|
|
108
108
|
|
|
109
109
|
privati
|
|
110
110
|
|
|
111
|
+
##
|
|
112
|
+
# Esegue il controllo sul parametro.
|
|
113
|
+
definisci _controlla(parametro, obbligatorio: si, annullabile: si, tipo_desiderato: :stringa, &blocco)
|
|
114
|
+
valore_parametro = @parametri_originali.ottieni parametro, nullo
|
|
115
|
+
valore_parametro = Data.strptime(valore_parametro, "%Y-%m-%d") recupera valore_parametro
|
|
116
|
+
|
|
117
|
+
cattura :controllo_terminato esegui
|
|
118
|
+
_segnala_presenza_obbligatoria_su parametro se obbligatorio == si e @parametri_originali.non_ha_chiave? parametro
|
|
119
|
+
|
|
120
|
+
se @parametri_originali.ha_chiave? parametro
|
|
121
|
+
_segnala_non_annullabile_su parametro se annullabile == no e valore_parametro.non_specificato?
|
|
122
|
+
_segnala_tipo_non_valido_su parametro, tipo_desiderato se tipo_non_corrispondente?(valore_parametro, tipo_desiderato)
|
|
123
|
+
valore_parametro = nullo se valore_parametro.non_specificato?
|
|
124
|
+
@parametri_processati.deposita parametro, valore_parametro
|
|
125
|
+
fine
|
|
126
|
+
|
|
127
|
+
_controlla_annidato parametro, valore_parametro, obbligatorio, &blocco se blocco.esiste?
|
|
128
|
+
fine
|
|
129
|
+
fine
|
|
130
|
+
|
|
131
|
+
##
|
|
132
|
+
# Esegue il controllo annidato sul parametro.
|
|
133
|
+
definisci _controlla_annidato(parametro, valore_parametro, obbligatorio, &blocco)
|
|
134
|
+
_segnala_annidamento_richiesto_su parametro se obbligatorio == si e valore_parametro.non_è_una? Mappa
|
|
135
|
+
lancia :controllo_terminato se valore_parametro.nullo?
|
|
136
|
+
|
|
137
|
+
parametri_annidati = Parametri.nuovo valore_parametro
|
|
138
|
+
blocco.chiama parametri_annidati
|
|
139
|
+
@validi = (@validi e parametri_annidati.validi?)
|
|
140
|
+
@parametri_processati.deposita parametro, parametri_annidati.ottieni se @validi == si
|
|
141
|
+
@errori.deposita parametro, parametri_annidati.errori se parametri_annidati.errati?
|
|
142
|
+
fine
|
|
143
|
+
|
|
111
144
|
##
|
|
112
145
|
# Recupera le opzioni del parametro, ovvero tipo e annullabilità.
|
|
113
146
|
definisci _opzioni_parametro(*opzioni, &blocco)
|
|
@@ -133,34 +166,6 @@ modulo Iris
|
|
|
133
166
|
mappa_opzioni
|
|
134
167
|
fine
|
|
135
168
|
|
|
136
|
-
##
|
|
137
|
-
# Esegue il controllo sul parametro.
|
|
138
|
-
definisci _controlla(parametro, obbligatorio: si, annullabile: si, tipo_desiderato: :stringa, &blocco)
|
|
139
|
-
valore_parametro = @parametri_originali.ottieni parametro, nullo
|
|
140
|
-
valore_parametro = Data.strptime(valore_parametro, "%Y-%m-%d") recupera valore_parametro
|
|
141
|
-
|
|
142
|
-
cattura :controllo_terminato esegui
|
|
143
|
-
_segnala_presenza_obbligatoria_su parametro se obbligatorio == si e @parametri_originali.non_ha_chiave? parametro
|
|
144
|
-
|
|
145
|
-
se @parametri_originali.ha_chiave? parametro
|
|
146
|
-
_segnala_non_annullabile_su parametro se annullabile == no e valore_parametro.nullo?
|
|
147
|
-
_segnala_tipo_non_valido_su parametro, tipo_desiderato se _tipo_non_corrispondente(valore_parametro, tipo_desiderato)
|
|
148
|
-
@parametri_processati.deposita parametro, valore_parametro
|
|
149
|
-
fine
|
|
150
|
-
|
|
151
|
-
se blocco.esiste?
|
|
152
|
-
_segnala_annidamento_richiesto_su parametro se obbligatorio == si e valore_parametro.non_è_una? Mappa
|
|
153
|
-
lancia :controllo_terminato se valore_parametro.nullo?
|
|
154
|
-
|
|
155
|
-
parametri_annidati = Parametri.nuovo valore_parametro
|
|
156
|
-
blocco.chiama parametri_annidati
|
|
157
|
-
@validi = (@validi e parametri_annidati.validi?)
|
|
158
|
-
@parametri_processati.deposita parametro, parametri_annidati.ottieni se @validi == si
|
|
159
|
-
@errori.deposita parametro, parametri_annidati.errori se parametri_annidati.errati?
|
|
160
|
-
fine
|
|
161
|
-
fine
|
|
162
|
-
fine
|
|
163
|
-
|
|
164
169
|
##
|
|
165
170
|
# Segnala che un parametro deve per forza essere passato.
|
|
166
171
|
definisci _segnala_presenza_obbligatoria_su(parametro)
|
|
@@ -196,7 +201,7 @@ modulo Iris
|
|
|
196
201
|
##
|
|
197
202
|
# Determina se il tipo del valore di un parametro è corrispondente
|
|
198
203
|
# a quello desiderato.
|
|
199
|
-
definisci
|
|
204
|
+
definisci tipo_non_corrispondente?(valore_parametro, tipo_desiderato)
|
|
200
205
|
ritorna no se valore_parametro.non_specificato?
|
|
201
206
|
|
|
202
207
|
considera tipo_desiderato
|
|
@@ -221,7 +226,7 @@ modulo Iris
|
|
|
221
226
|
# Messaggio per il tipo parametro.
|
|
222
227
|
definisci _messaggio_per(tipo_parametro)
|
|
223
228
|
considera tipo_parametro
|
|
224
|
-
quando :booleano allora "
|
|
229
|
+
quando :booleano allora "un booleano"
|
|
225
230
|
quando :data allora "una data"
|
|
226
231
|
quando :stringa allora "una stringa"
|
|
227
232
|
quando :intero allora "un numero intero"
|
|
@@ -16,7 +16,7 @@ modulo Iris
|
|
|
16
16
|
definisci chiama(stato, env)
|
|
17
17
|
metodo_richiesta = env["REQUEST_METHOD"]
|
|
18
18
|
percorso_richiesta = env["REQUEST_PATH"]
|
|
19
|
-
parametri = env["
|
|
19
|
+
parametri = env["iris.parametri"]
|
|
20
20
|
messaggio = "#{stato} [#{metodo_richiesta}] #{percorso_richiesta} => #{parametri}".congela
|
|
21
21
|
|
|
22
22
|
considera
|
data/lib/iris/azione.ir
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
require "rack/request"
|
|
1
2
|
richiedi_relativo "azione/intestazioni"
|
|
2
3
|
richiedi_relativo "azione/parametri"
|
|
3
|
-
richiedi_relativo "azione/registratore"
|
|
4
4
|
|
|
5
5
|
##
|
|
6
6
|
# Questo modulo permette di definire un'azione di un'applicazione.
|
|
@@ -57,6 +57,9 @@ modulo Iris
|
|
|
57
57
|
# Metodo principale eseguito per risolvere l'azione.
|
|
58
58
|
definisci call(env)
|
|
59
59
|
_imposta_variabili_istanza env
|
|
60
|
+
_converti_parametri_interrogazione
|
|
61
|
+
_converti_corpo_in_json
|
|
62
|
+
_inizializza_parametri
|
|
60
63
|
|
|
61
64
|
cattura :arresta esegui
|
|
62
65
|
prima
|
|
@@ -64,14 +67,22 @@ modulo Iris
|
|
|
64
67
|
chiama
|
|
65
68
|
fine
|
|
66
69
|
|
|
67
|
-
|
|
68
|
-
@corpo = @corpo.to_json se @corpo.risponde_a? :to_json
|
|
70
|
+
@corpo = @corpo.in_json se @corpo.risponde_a? :in_json
|
|
69
71
|
@intestazioni.deposita "Content-Length", @corpo.bytesize.to_s
|
|
70
72
|
|
|
71
73
|
[ @stato, @intestazioni, [ @corpo ] ]
|
|
72
74
|
fine
|
|
73
75
|
alias :avvia :call
|
|
74
76
|
|
|
77
|
+
##
|
|
78
|
+
# Metodo per risolvere l'azione in modo personalizzato.
|
|
79
|
+
# In questo metodo è possibile impostare lo stato, le intestazioni
|
|
80
|
+
# o il corpo della risposta. È inoltre possibile utilizzare
|
|
81
|
+
# i metodi `arresta` e `stato` per interrompere il flusso dell'azione
|
|
82
|
+
# e ritornare immediatamente i valori passati.
|
|
83
|
+
definisci chiama
|
|
84
|
+
fine
|
|
85
|
+
|
|
75
86
|
##
|
|
76
87
|
# Aggiunge un aggancio per eseguire codice prima
|
|
77
88
|
# dell'azione effettiva. Può essere utile per definire
|
|
@@ -81,6 +92,12 @@ modulo Iris
|
|
|
81
92
|
rilascia se blocco_dato?
|
|
82
93
|
fine
|
|
83
94
|
|
|
95
|
+
##
|
|
96
|
+
# Metodo di utilità per accedere ai parametri della richiesta.
|
|
97
|
+
definisci parametri
|
|
98
|
+
@parametri
|
|
99
|
+
fine
|
|
100
|
+
|
|
84
101
|
##
|
|
85
102
|
# Controlla la validità dei parametri. Questo metodo va implementato
|
|
86
103
|
# con i controlli desiderati.
|
|
@@ -88,40 +105,57 @@ modulo Iris
|
|
|
88
105
|
fine
|
|
89
106
|
|
|
90
107
|
##
|
|
91
|
-
#
|
|
92
|
-
|
|
93
|
-
|
|
108
|
+
# Metodo per terminare subito un'azione, fornendo
|
|
109
|
+
# stato e corpo risposta.
|
|
110
|
+
definisci arresta(stato, corpo)
|
|
111
|
+
@stato = stato
|
|
112
|
+
@corpo = corpo
|
|
113
|
+
lancia :arresta
|
|
94
114
|
fine
|
|
115
|
+
alias :stato :arresta
|
|
95
116
|
|
|
96
117
|
privati
|
|
97
118
|
|
|
98
119
|
##
|
|
99
120
|
# Imposta le variabili d'istanza iniziali.
|
|
100
121
|
definisci _imposta_variabili_istanza(env)
|
|
101
|
-
@env
|
|
102
|
-
@stato
|
|
103
|
-
@intestazioni
|
|
104
|
-
@corpo
|
|
105
|
-
@
|
|
106
|
-
@utente_corrente = @env["utente_corrente"]
|
|
107
|
-
@registratore = Iris::Azione::Registratore.nuovo
|
|
122
|
+
@env = env
|
|
123
|
+
@stato = 200
|
|
124
|
+
@intestazioni = INTESTAZIONI_PREDEFINITE
|
|
125
|
+
@corpo = nullo
|
|
126
|
+
@env["iris.parametri"] ||= Mappa.nuova
|
|
108
127
|
fine
|
|
109
128
|
|
|
110
129
|
##
|
|
111
|
-
#
|
|
112
|
-
definisci
|
|
113
|
-
@parametri
|
|
130
|
+
# Inizializza i parametri.
|
|
131
|
+
definisci _inizializza_parametri
|
|
132
|
+
@parametri = Parametri.nuovo @env["iris.parametri"]
|
|
133
|
+
fine
|
|
134
|
+
|
|
135
|
+
##
|
|
136
|
+
# Converte il corpo della richiesta in JSON.
|
|
137
|
+
definisci _converti_corpo_in_json
|
|
138
|
+
ritorna se @env["rack.input"].nullo?
|
|
139
|
+
corpo = @env["rack.input"].read
|
|
140
|
+
ritorna se corpo.non_specificato?
|
|
141
|
+
|
|
142
|
+
inizia
|
|
143
|
+
corpo_convertito = (JSON.processa corpo).simbolizza
|
|
144
|
+
@env["iris.parametri"].fondi! corpo_convertito se corpo_convertito.è_una? Mappa
|
|
145
|
+
@env["iris.corpo"] = corpo_convertito
|
|
146
|
+
recupera JSON::ParserError => errore
|
|
147
|
+
arresta 400, errore: "Il corpo fornito non è un JSON valido."
|
|
148
|
+
fine
|
|
149
|
+
@env["rack.input"].rewind
|
|
114
150
|
fine
|
|
115
151
|
|
|
116
152
|
##
|
|
117
|
-
#
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
@
|
|
122
|
-
lancia :arresta
|
|
153
|
+
# Converte i parametri della richiesta.
|
|
154
|
+
definisci _converti_parametri_interrogazione
|
|
155
|
+
ritorna a_meno_che @env["REQUEST_URI"].specificato? e @env["REQUEST_URI"].include?("?")
|
|
156
|
+
parametri_stringa_interrogazione = @env["REQUEST_URI"].partiziona("?").ultimo
|
|
157
|
+
@env["iris.parametri"].fondi! Rack::Utils.parse_nested_query(parametri_stringa_interrogazione).simbolizza
|
|
123
158
|
fine
|
|
124
|
-
alias :stato :arresta
|
|
125
159
|
|
|
126
160
|
fine
|
|
127
161
|
fine
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
modulo Iris
|
|
2
|
+
classe Navigatore
|
|
3
|
+
classe Rotta
|
|
4
|
+
|
|
5
|
+
definisci inizializzatore(metodo, percorso, azione)
|
|
6
|
+
@metodo = metodo.in_stringa.maiuscolo
|
|
7
|
+
@percorso = percorso
|
|
8
|
+
@passi_definiti = percorso.dividi("/").seleziona(&:specificato?)
|
|
9
|
+
@azione = azione
|
|
10
|
+
@parametri = Mappa.nuova
|
|
11
|
+
fine
|
|
12
|
+
|
|
13
|
+
definisci raggiungi(env)
|
|
14
|
+
env["iris.parametri"] ||= Mappa.nuova
|
|
15
|
+
env["iris.parametri"].fondi! @parametri se @parametri.esiste?
|
|
16
|
+
|
|
17
|
+
se @azione.risponde_a? :chiama
|
|
18
|
+
@azione.chiama env
|
|
19
|
+
altrimenti
|
|
20
|
+
@azione.nuova.avvia env
|
|
21
|
+
fine
|
|
22
|
+
fine
|
|
23
|
+
|
|
24
|
+
definisci raggiungibile_per?(metodo, percorso_richiesta)
|
|
25
|
+
ritorna no se metodo != @metodo
|
|
26
|
+
ritorna si se @passi_definiti.ultimo == "*"
|
|
27
|
+
|
|
28
|
+
passi_richiesta = percorso_richiesta.dividi("/").seleziona(&:specificato?)
|
|
29
|
+
ritorna no se passi_richiesta.conteggio > @passi_definiti.conteggio
|
|
30
|
+
|
|
31
|
+
percorsi_affiancati = @passi_definiti.cerniera passi_richiesta
|
|
32
|
+
percorsi_affiancati.tutti? esegui |passo_definito, passo_richiesto|
|
|
33
|
+
ritorna no se passo_definito.nullo? o passo_richiesto.nullo?
|
|
34
|
+
prossima _memorizza_parametro(passo_definito, passo_richiesto) se passo_definito.inizia_con? ":"
|
|
35
|
+
passo_definito == passo_richiesto
|
|
36
|
+
fine
|
|
37
|
+
fine
|
|
38
|
+
|
|
39
|
+
privati
|
|
40
|
+
|
|
41
|
+
##
|
|
42
|
+
# Memorizza il parametro trovato durante il percorso.
|
|
43
|
+
definisci _memorizza_parametro(chiave, valore)
|
|
44
|
+
ritorna se chiave == ":"
|
|
45
|
+
@parametri.deposita chiave[1..].in_simbolo, valore
|
|
46
|
+
si
|
|
47
|
+
fine
|
|
48
|
+
|
|
49
|
+
fine
|
|
50
|
+
fine
|
|
51
|
+
fine
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
richiedi_relativo "azione"
|
|
2
|
+
|
|
3
|
+
modulo Iris
|
|
4
|
+
classe Navigatore
|
|
5
|
+
|
|
6
|
+
##
|
|
7
|
+
# Metodi supportati.
|
|
8
|
+
METODI_SUPPORTATI = [ :get, :post, :patch, :put, :delete, :options ]
|
|
9
|
+
|
|
10
|
+
definisci inizializzatore(azione: nulla, percorso_padre: nullo, &blocco)
|
|
11
|
+
@rotte = []
|
|
12
|
+
@percorso_padre = percorso_padre
|
|
13
|
+
@azione_rotta_non_raggiungibile = RottaNonRaggiungibile
|
|
14
|
+
|
|
15
|
+
se azione.esiste?
|
|
16
|
+
@azione = azione
|
|
17
|
+
altrimenti
|
|
18
|
+
esegui_in_istanza &blocco se blocco.esiste?
|
|
19
|
+
fine
|
|
20
|
+
fine
|
|
21
|
+
|
|
22
|
+
definisci risolvi(env)
|
|
23
|
+
se @azione.esiste?
|
|
24
|
+
@azione.avvia env
|
|
25
|
+
altrimenti
|
|
26
|
+
rotta_raggiungibile = cerca_rotta_raggiungibile_per env
|
|
27
|
+
se rotta_raggiungibile.esiste?
|
|
28
|
+
rotta_raggiungibile.raggiungi env
|
|
29
|
+
altrimenti
|
|
30
|
+
@azione_rotta_non_raggiungibile.nuova.avvia env
|
|
31
|
+
fine
|
|
32
|
+
fine
|
|
33
|
+
fine
|
|
34
|
+
alias :call :risolvi
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Cerca la rotta raggiungibile per la richiesta.
|
|
38
|
+
definisci cerca_rotta_raggiungibile_per(env)
|
|
39
|
+
rotta_raggiungibile = nulla
|
|
40
|
+
metodo = env["REQUEST_METHOD"]
|
|
41
|
+
percorso_richiesta = env["REQUEST_PATH"] || env["PATH_INFO"]
|
|
42
|
+
|
|
43
|
+
cattura :rotta_trovata esegui
|
|
44
|
+
@rotte.per_ognuna esegui |rotta_definita|
|
|
45
|
+
se rotta_definita.è_una? Iris::Navigatore::Rotta
|
|
46
|
+
se rotta_definita.raggiungibile_per? metodo, percorso_richiesta
|
|
47
|
+
rotta_raggiungibile = rotta_definita
|
|
48
|
+
lancia :rotta_trovata
|
|
49
|
+
fine
|
|
50
|
+
altrimenti_se rotta_definita.è_un? Iris::Navigatore
|
|
51
|
+
rotta_raggiungibile = rotta_definita.cerca_rotta_raggiungibile_per env
|
|
52
|
+
lancia :rotta_trovata se rotta_raggiungibile.esiste?
|
|
53
|
+
fine
|
|
54
|
+
fine
|
|
55
|
+
fine
|
|
56
|
+
rotta_raggiungibile
|
|
57
|
+
fine
|
|
58
|
+
|
|
59
|
+
privati
|
|
60
|
+
|
|
61
|
+
##
|
|
62
|
+
# Definisce una rotta.
|
|
63
|
+
definisci rotta(percorso_rotta, **opzioni)
|
|
64
|
+
azione = opzioni.ottieni :verso
|
|
65
|
+
nome_metodo = __callee__
|
|
66
|
+
percorso_completo = [ @percorso_padre, percorso_rotta ].unisci
|
|
67
|
+
alza "Metodo `#{nome_metodo}` non supportato. I metodi supportati per le rotte "\
|
|
68
|
+
"sono #{METODI_SUPPORTATI.unisci(",")}" se nome_metodo.non_in? METODI_SUPPORTATI
|
|
69
|
+
|
|
70
|
+
@rotte << Iris::Navigatore::Rotta.nuova(nome_metodo, percorso_completo, azione)
|
|
71
|
+
fine
|
|
72
|
+
alias :get :rotta
|
|
73
|
+
alias :post :rotta
|
|
74
|
+
alias :patch :rotta
|
|
75
|
+
alias :put :rotta
|
|
76
|
+
alias :delete :rotta
|
|
77
|
+
alias :options :rotta
|
|
78
|
+
|
|
79
|
+
##
|
|
80
|
+
# Definisce una percorso annidata.
|
|
81
|
+
definisci percorso(percorso_rotta, &blocco)
|
|
82
|
+
alza "Definire un percorso valido, non può essere nullo né vuoto." se percorso_rotta.non_specificato?
|
|
83
|
+
percorso_completo = [ @percorso_padre, percorso_rotta ].unisci
|
|
84
|
+
@rotte << Iris::Navigatore.nuovo(azione: nulla, percorso_padre: percorso_completo, &blocco)
|
|
85
|
+
fine
|
|
86
|
+
|
|
87
|
+
##
|
|
88
|
+
# L'azione predefinita con cui rispondere se non vengono
|
|
89
|
+
# trovate rotte raggiungibili per il metodo e il percorso richiesto.
|
|
90
|
+
classe RottaNonRaggiungibile
|
|
91
|
+
includi Iris::Azione
|
|
92
|
+
|
|
93
|
+
definisci chiama
|
|
94
|
+
arresta 405, errore: "Nessuna rotta trovata per questo percorso."
|
|
95
|
+
fine
|
|
96
|
+
fine
|
|
97
|
+
|
|
98
|
+
fine
|
|
99
|
+
fine
|
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.1.
|
|
4
|
+
version: 0.1.10
|
|
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-04-
|
|
11
|
+
date: 2020-04-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: italian-ruby
|
|
@@ -24,34 +24,6 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0.1'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: hanami-router
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '1.3'
|
|
34
|
-
type: :runtime
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '1.3'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: hanami-utils
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '1.3'
|
|
48
|
-
type: :runtime
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '1.3'
|
|
55
27
|
description: Iris. Ruby.
|
|
56
28
|
email:
|
|
57
29
|
- francesco.ballardin@develonproject.com
|
|
@@ -76,6 +48,9 @@ files:
|
|
|
76
48
|
- lib/iris/azione/parametri.ir
|
|
77
49
|
- lib/iris/azione/registratore.ir
|
|
78
50
|
- lib/iris/load.rb
|
|
51
|
+
- lib/iris/navigatore.ir
|
|
52
|
+
- lib/iris/navigatore/percorso.ir
|
|
53
|
+
- lib/iris/navigatore/rotta.ir
|
|
79
54
|
- lib/iris/versione.ir
|
|
80
55
|
homepage: https://github.com/Pluvie/ruby-iris
|
|
81
56
|
licenses: []
|