iris-rb 0.1.9 → 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|