station_master 0.0.4 → 0.0.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/README.md +18 -7
- data/lib/station_master/ask.rb +8 -0
- data/lib/station_master/schedule.rb +81 -0
- data/lib/station_master/station.rb +78 -0
- data/lib/station_master/version.rb +1 -1
- data/lib/station_master.rb +2 -3
- data/spec/schedule_spec.rb +167 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/{station_master_spec.rb → station_spec.rb} +5 -5
- data/station_master.gemspec +1 -1
- metadata +7 -5
- data/lib/station_master/ask/departure.rb +0 -7
- data/lib/station_master/ask/station.rb +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 371a8bf0792b632b875ecb815c4f90c2437a5b18
|
4
|
+
data.tar.gz: ce4954b680306340f806976f7b2d7f75c7483037
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7605c72dcdc61cd85a24b796bd26a51f1d7512ba3abfcbd169b660a2a08ff14820ca806128e581bd7c1b1842401dcf2094b03d11d8d56bc88d363bd7546fba51
|
7
|
+
data.tar.gz: 125a5a40c3d30148a21348f09b3c388cb6952543893a345b273ba7bd107cb177a2b9de0e046704296c67357fddc79383201a70387272244e76e5c693eea36f90
|
data/README.md
CHANGED
@@ -23,20 +23,31 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
require 'station_master'
|
25
25
|
|
26
|
-
To
|
26
|
+
To find a specific station based on city name:
|
27
27
|
|
28
|
+
StationMaster::Station.find_by_city('Torino')
|
28
29
|
|
29
|
-
|
30
|
+
It returns a list of possible stations that match the parameter string.
|
30
31
|
|
32
|
+
To find real-time departures information:
|
31
33
|
|
32
|
-
|
33
|
-
require minutes!).
|
34
|
+
StationMaster::Schedule.find_station_departures('S06421')
|
34
35
|
|
35
|
-
|
36
|
+
It retrieve the current station departures status.
|
36
37
|
|
37
|
-
|
38
|
+
To find real-time arrivals information:
|
38
39
|
|
39
|
-
|
40
|
+
StationMaster::Schedule.find_station_arrivals('S06421')
|
41
|
+
|
42
|
+
It retrieve the current station arrivals status.
|
43
|
+
|
44
|
+
To get a list of all stations available:
|
45
|
+
|
46
|
+
StationMaster::Station.all
|
47
|
+
|
48
|
+
|
49
|
+
It returns the list of all stations with geo-coordinates information (may
|
50
|
+
require minutes!).
|
40
51
|
|
41
52
|
## Changelog
|
42
53
|
|
data/lib/station_master/ask.rb
CHANGED
@@ -0,0 +1,81 @@
|
|
1
|
+
module StationMaster
|
2
|
+
class Schedule
|
3
|
+
class << self
|
4
|
+
include Ask
|
5
|
+
|
6
|
+
def find_station_arrivals(station_code, time = Time.now)
|
7
|
+
MultiJson::load(remote_call(:arrivals, { station_code: station_code, time: format_time(time) }), symbolize_keys: true).inject([]) do |array, arrival_hash|
|
8
|
+
array << Arrival.new(arrival_hash)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def find_station_departures(station_code, time = Time.now)
|
13
|
+
MultiJson::load(remote_call(:departures, { station_code: station_code, time: format_time(time) }), symbolize_keys: true).inject([]) do |array, arrival_hash|
|
14
|
+
array << Departure.new(arrival_hash)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
def remote_call(resource, options = {})
|
20
|
+
request_url = case resource
|
21
|
+
when :arrivals then
|
22
|
+
STATION_MASTER_BASE_URL + "arrivi/#{options[:station_code]}/#{options[:time]}"
|
23
|
+
when :departures then
|
24
|
+
STATION_MASTER_BASE_URL + "partenze/#{options[:station_code]}/#{options[:time]}"
|
25
|
+
else
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
|
29
|
+
ask!(URI.escape(request_url)) if request_url
|
30
|
+
end
|
31
|
+
|
32
|
+
def format_time(time)
|
33
|
+
time.strftime('%a %b %d %Y %H:%M:%S GMT%z (CET)')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Arrival
|
38
|
+
attr_reader :train_code, :train_type, :origin, :platform, :time
|
39
|
+
|
40
|
+
def initialize(hash)
|
41
|
+
@train_code = hash[:numeroTreno]
|
42
|
+
@train_type = hash[:categoria]
|
43
|
+
@origin = hash[:origine]
|
44
|
+
@platform = (hash[:binarioProgrammatoArrivoDescrizione]|| '0').strip
|
45
|
+
@time = Time.at((hash[:orarioArrivo] || 0) / 1000)
|
46
|
+
end
|
47
|
+
|
48
|
+
def to_hash
|
49
|
+
{
|
50
|
+
train_code: train_code,
|
51
|
+
train_type: train_type,
|
52
|
+
origin: origin,
|
53
|
+
platform: platform,
|
54
|
+
time: time.strftime('%H:%M')
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class Departure
|
60
|
+
attr_reader :train_code, :train_type, :destination, :platform, :time
|
61
|
+
|
62
|
+
def initialize(hash)
|
63
|
+
@train_code = hash[:numeroTreno]
|
64
|
+
@train_type = hash[:categoria]
|
65
|
+
@destination = hash[:destinazione]
|
66
|
+
@platform = (hash[:binarioProgrammatoPartenzaDescrizione] || 0).strip
|
67
|
+
@time = Time.at((hash[:orarioPartenza] || 0) / 1000)
|
68
|
+
end
|
69
|
+
|
70
|
+
def to_hash
|
71
|
+
{
|
72
|
+
train_code: train_code,
|
73
|
+
train_type: train_type,
|
74
|
+
destination: destination,
|
75
|
+
platform: platform,
|
76
|
+
time: time.strftime('%H:%M')
|
77
|
+
}
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module StationMaster
|
2
|
+
class Station
|
3
|
+
attr_reader :station_code, :latitude, :longitude, :region_id, :location
|
4
|
+
|
5
|
+
class << self
|
6
|
+
include Ask
|
7
|
+
|
8
|
+
def all
|
9
|
+
stations_array = []
|
10
|
+
index = 0
|
11
|
+
begin
|
12
|
+
response = MultiJson::load(remote_call(:stations, page: index), symbolize_keys: true).inject([]) do |array, station|
|
13
|
+
station_code = station[:codiceStazione]
|
14
|
+
latitude = station[:lat]
|
15
|
+
longitude = station[:lon]
|
16
|
+
region_id = find_region_id_by_code(station[:codiceStazione])
|
17
|
+
station_details = find_details(station_code, region_id)
|
18
|
+
location = (station_details[:localita][:nomeLungo] || '').split.map(&:capitalize).join(' ') if station_details
|
19
|
+
|
20
|
+
array << Station.new(station_code, latitude, longitude, region_id, location)
|
21
|
+
end
|
22
|
+
stations_array += response
|
23
|
+
index += 1
|
24
|
+
end while response.any?
|
25
|
+
|
26
|
+
stations_array
|
27
|
+
end
|
28
|
+
|
29
|
+
def find_by_city(city)
|
30
|
+
remote_call(:search, { city: city }).split(/\n/).map(&:strip).inject({}) { |hash, entry| hash.merge!({ entry.split('|').first.to_sym => entry.split('|').last }) }
|
31
|
+
end
|
32
|
+
|
33
|
+
def find_region_id_by_code(station_code)
|
34
|
+
remote_call(:region_id, station_code: station_code)
|
35
|
+
end
|
36
|
+
|
37
|
+
def find_details(station_code, region_id)
|
38
|
+
MultiJson::load(remote_call(:station_details, station_code: station_code, region_id: region_id), symbolize_keys: true)
|
39
|
+
end
|
40
|
+
|
41
|
+
protected
|
42
|
+
def remote_call(resource, options = {})
|
43
|
+
request_url = case resource
|
44
|
+
when :stations then
|
45
|
+
STATION_MASTER_BASE_URL + "elencoStazioni/#{options[:page] || 0}"
|
46
|
+
when :region_id then
|
47
|
+
STATION_MASTER_BASE_URL + "regione/#{options[:station_code] || 0}"
|
48
|
+
when :station_details
|
49
|
+
STATION_MASTER_BASE_URL + "dettaglioStazione/#{options[:station_code] || 0}/#{options[:region_id] || 0}"
|
50
|
+
when :search
|
51
|
+
STATION_MASTER_BASE_URL + "autocompletaStazione/#{options[:city] || ''}"
|
52
|
+
else
|
53
|
+
nil
|
54
|
+
end
|
55
|
+
|
56
|
+
ask!(request_url) if request_url
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def initialize(station_code, latitude, longitude, region_id, location)
|
61
|
+
@station_code = station_code
|
62
|
+
@latitude = latitude
|
63
|
+
@longitude = longitude
|
64
|
+
@region_id = region_id
|
65
|
+
@location = location
|
66
|
+
end
|
67
|
+
|
68
|
+
def to_hash
|
69
|
+
{
|
70
|
+
station_code: station_code,
|
71
|
+
latitude: latitude,
|
72
|
+
longitude: longitude,
|
73
|
+
region_id: region_id,
|
74
|
+
location: location
|
75
|
+
}
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
data/lib/station_master.rb
CHANGED
@@ -2,10 +2,9 @@ require 'active_support/core_ext'
|
|
2
2
|
require 'multi_json'
|
3
3
|
require 'net/http'
|
4
4
|
|
5
|
-
require 'station_master/version'
|
6
5
|
require 'station_master/ask'
|
7
|
-
require 'station_master/
|
8
|
-
|
6
|
+
require 'station_master/station'
|
7
|
+
require 'station_master/schedule'
|
9
8
|
|
10
9
|
module StationMaster
|
11
10
|
STATION_MASTER_BASE_URL = 'http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/'
|
@@ -0,0 +1,167 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe StationMaster::Schedule do
|
4
|
+
let(:schedule) { StationMaster::Schedule }
|
5
|
+
|
6
|
+
context "#find_station_arrivals" do
|
7
|
+
it "returns arrivals given a station code and optionally a datetime" do
|
8
|
+
expect(schedule).to respond_to(:find_station_arrivals)
|
9
|
+
expect(schedule.find_station_arrivals('S00219', Time.new(2014,11,10,22,35,26,'+01:00')).map(&:to_hash)).to eq([
|
10
|
+
{
|
11
|
+
origin: "SUSA",
|
12
|
+
platform: "14",
|
13
|
+
time: "22:15",
|
14
|
+
train_code: 24875,
|
15
|
+
train_type: "REG"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
origin: "GENOVA BRIGNOLE",
|
19
|
+
platform: "7",
|
20
|
+
time: "22:30",
|
21
|
+
train_code: 2530,
|
22
|
+
train_type: "REG"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
origin: "IVREA",
|
26
|
+
platform: "18",
|
27
|
+
time: "22:32",
|
28
|
+
train_code: 24832,
|
29
|
+
train_type: "REG"
|
30
|
+
},
|
31
|
+
{
|
32
|
+
origin: "CUNEO",
|
33
|
+
platform: "3",
|
34
|
+
time: "22:35",
|
35
|
+
train_code: 10216,
|
36
|
+
train_type: "REG"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
origin: "ROMA TERMINI",
|
40
|
+
platform: "17",
|
41
|
+
time: "22:40",
|
42
|
+
train_code: 9580,
|
43
|
+
train_type: "ES*"
|
44
|
+
},
|
45
|
+
{
|
46
|
+
origin: "BARDONECCHIA",
|
47
|
+
platform: "15",
|
48
|
+
time: "22:45",
|
49
|
+
train_code: 10029,
|
50
|
+
train_type: "REG"
|
51
|
+
},
|
52
|
+
{
|
53
|
+
origin: "VENEZIA SANTA LUCIA",
|
54
|
+
platform: "11",
|
55
|
+
time: "22:50",
|
56
|
+
train_code: 9746,
|
57
|
+
train_type: "ES*"
|
58
|
+
},
|
59
|
+
{
|
60
|
+
origin: "MILANO CENTRALE",
|
61
|
+
platform: "13",
|
62
|
+
time: "23:07",
|
63
|
+
train_code: 2030,
|
64
|
+
train_type: "REG"
|
65
|
+
},
|
66
|
+
{
|
67
|
+
origin: "ROMA TERMINI",
|
68
|
+
platform: "16",
|
69
|
+
time: "23:12",
|
70
|
+
train_code: 9654,
|
71
|
+
train_type: "ES*"
|
72
|
+
},
|
73
|
+
{
|
74
|
+
origin: "SUSA",
|
75
|
+
platform: "4",
|
76
|
+
time: "23:17",
|
77
|
+
train_code: 24877,
|
78
|
+
train_type: "REG"
|
79
|
+
},
|
80
|
+
{
|
81
|
+
origin: "SAVONA",
|
82
|
+
platform: "0",
|
83
|
+
time: "23:35",
|
84
|
+
train_code: 33800,
|
85
|
+
train_type: "REG"
|
86
|
+
},
|
87
|
+
{
|
88
|
+
origin: "GENOVA BRIGNOLE",
|
89
|
+
platform: "5",
|
90
|
+
time: "23:40",
|
91
|
+
train_code: 2532,
|
92
|
+
train_type: "REG"
|
93
|
+
},
|
94
|
+
{
|
95
|
+
origin: "BARDONECCHIA",
|
96
|
+
platform: "15",
|
97
|
+
time: "23:45",
|
98
|
+
train_code: 10031,
|
99
|
+
train_type: "REG"
|
100
|
+
},
|
101
|
+
{
|
102
|
+
origin: "MILANO CENTRALE",
|
103
|
+
platform: "13",
|
104
|
+
time: "00:10",
|
105
|
+
train_code: 2032,
|
106
|
+
train_type: "REG"
|
107
|
+
}
|
108
|
+
])
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
context "#find_station_departures" do
|
113
|
+
it "returns departures given a station code and optionally a datetime" do
|
114
|
+
expect(schedule).to respond_to(:find_station_departures)
|
115
|
+
expect(schedule.find_station_departures('S00219', Time.new(2014,11,10,22,18,44,'+01:00')).map(&:to_hash)).to eq([
|
116
|
+
{
|
117
|
+
train_code: 10030,
|
118
|
+
train_type: "REG",
|
119
|
+
destination: "BARDONECCHIA",
|
120
|
+
platform: "18",
|
121
|
+
time: "22:20"
|
122
|
+
},
|
123
|
+
{
|
124
|
+
train_code: 23601,
|
125
|
+
train_type: "REG",
|
126
|
+
destination: "ALESSANDRIA",
|
127
|
+
platform: "8",
|
128
|
+
time: "22:20"
|
129
|
+
},
|
130
|
+
{
|
131
|
+
train_code: 24835,
|
132
|
+
train_type: "REG",
|
133
|
+
destination: "IVREA",
|
134
|
+
platform: "15",
|
135
|
+
time: "22:28"
|
136
|
+
},
|
137
|
+
{
|
138
|
+
train_code: 24876,
|
139
|
+
train_type: "REG",
|
140
|
+
destination: "BUSSOLENO",
|
141
|
+
platform: "14",
|
142
|
+
time: "22:45"
|
143
|
+
},
|
144
|
+
{
|
145
|
+
train_code: 2033,
|
146
|
+
train_type: "REG",
|
147
|
+
destination: "MILANO CENTRALE",
|
148
|
+
platform: "13",
|
149
|
+
time: "22:54"
|
150
|
+
},
|
151
|
+
{
|
152
|
+
train_code: 10221,
|
153
|
+
train_type: "REG",
|
154
|
+
destination: "CUNEO",
|
155
|
+
platform: "3",
|
156
|
+
time: "23:25"
|
157
|
+
}
|
158
|
+
])
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
context "#format_time" do
|
163
|
+
it "returns time formatted" do
|
164
|
+
expect(schedule.send(:format_time, Time.new(2014,11,10,11,27,57,'+01:00'))).to eq("Mon Nov 10 2014 11:27:57 GMT+0100 (CET)")
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,6 +10,7 @@ require 'benchmark'
|
|
10
10
|
|
11
11
|
RSpec.configure do |config|
|
12
12
|
config.before(:each) do
|
13
|
+
# stubs for Station.all
|
13
14
|
stub_request(:get, 'http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/elencoStazioni/0').
|
14
15
|
to_return(status: 200, body: <<-JSON.squish, headers: {})
|
15
16
|
[{"codReg":15,"tipoStazione":3,"dettZoomStaz":[],"pstaz":[],"mappaCitta":{"urlImagePinpoint":"","urlImageBaloon":""},"codiceStazione":"S11212","codStazione":"S11212","lat":40.787682,"lon":15.758093,"latMappaCitta":0.0,"lonMappaCitta":0.0,"localita":{"nomeLungo":"CASTEL LAGOPESOLE","nomeBreve":"Castel Lagopes.","label":"","id":"S11212"},"esterno":false,"offsetX":0,"offsetY":0,"nomeCitta":"A"},{"codReg":15,"tipoStazione":3,"dettZoomStaz":[],"pstaz":[],"mappaCitta":{"urlImagePinpoint":"","urlImageBaloon":""},"codiceStazione":"S11214","codStazione":"S11214","lat":40.714667,"lon":15.785619,"latMappaCitta":0.0,"lonMappaCitta":0.0,"localita":{"nomeLungo":"AVIGLIANO LUCANIA","nomeBreve":"Avigliano Luc.","label":"","id":"S11214"},"esterno":false,"offsetX":0,"offsetY":0,"nomeCitta":"A"}]
|
@@ -23,6 +24,7 @@ RSpec.configure do |config|
|
|
23
24
|
stub_request(:get, 'http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/elencoStazioni/2').
|
24
25
|
to_return(status: 200, body: '[]', headers: {})
|
25
26
|
|
27
|
+
# stubs for Station.find_by_city
|
26
28
|
['S11212', 'S11214', 'S11219'].each do |station_id|
|
27
29
|
region_id = 15
|
28
30
|
|
@@ -77,5 +79,17 @@ RSpec.configure do |config|
|
|
77
79
|
TORTORETO LIDO|S07801
|
78
80
|
TORVISCOSA|S03206
|
79
81
|
JSON
|
82
|
+
|
83
|
+
# stubs for Schedule.find_station_arrivals
|
84
|
+
stub_request(:get, "http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/arrivi/S00219/Mon%20Nov%2010%202014%2022:35:26%20GMT+0100%20(CET)").
|
85
|
+
to_return(status: 200, headers: {}, body: <<-JSON.squish)
|
86
|
+
[{"numeroTreno":24875,"categoria":"REG","categoriaDescrizione":null,"origine":"SUSA","codOrigine":"S00260","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"14 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415654100000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"22:15","compOrarioPartenza":null,"compNumeroTreno":"REG 24875","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png22:15","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":2530,"categoria":"REG","categoriaDescrizione":null,"origine":"GENOVA BRIGNOLE","codOrigine":"S04702","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":true,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"7 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415655000000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":7,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"22:30","compOrarioPartenza":null,"compNumeroTreno":"REG 2530","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"ritardo01_txt","compClassRitardoLine":"ritardo01_line","compImgRitardo2":"/vt_static/img/legenda/icone_legenda/ritardo01.png","compImgRitardo":"/vt_static/img/legenda/icone_legenda/ritardo01.png","compRitardo":["ritardo 7 min.","delay 7 min.","Verspätung 7 Min.","retard de 7 min.","retraso de 7 min.","întârziere 7 min.","遅延 7 分","误点 7分钟","опоздание на 7 минут"],"compRitardoAndamento":["con un ritardo di 7 min.","7 minutes late","mit einer Verzögerung von 7 Min.","avec un retard de 7 min.","con un retraso de 7 min.","cu o întârziere de 7 min.","7 分の遅延","误点 7分钟","с опозданием в 7 минут"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png22:37","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":24832,"categoria":"REG","categoriaDescrizione":null,"origine":"IVREA","codOrigine":"S00154","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"18 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415655120000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"22:32","compOrarioPartenza":null,"compNumeroTreno":"REG 24832","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png22:32","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":10216,"categoria":"REG","categoriaDescrizione":null,"origine":"CUNEO","codOrigine":"S00610","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"3 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415655300000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"22:35","compOrarioPartenza":null,"compNumeroTreno":"REG 10216","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png22:35","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":9580,"categoria":"ES*","categoriaDescrizione":null,"origine":"ROMA TERMINI","codOrigine":"S08409","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":true,"codiceCliente":1,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"17 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"A","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415655600000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":6,"tipoProdotto":"100","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"22:40","compOrarioPartenza":null,"compNumeroTreno":"ES* FR 9580","compOrientamento":["Executive in coda","Executive at the rear","Executive Zugende","Executive en queue","Executive al final del tren","Executive la coada trenului","背面のExecutive","Executive在后几节车厢","Executive в хвосте поезда"],"compTipologiaTreno":"nazionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["ritardo 6 min.","delay 6 min.","Verspätung 6 Min.","retard de 6 min.","retraso de 6 min.","întârziere 6 min.","遅延 6 分","误点 6分钟","опоздание на 6 минут"],"compRitardoAndamento":["con un ritardo di 6 min.","6 minutes late","mit einer Verzögerung von 6 Min.","avec un retard de 6 min.","con un retraso de 6 min.","cu o întârziere de 6 min.","6 分の遅延","误点 6分钟","с опозданием в 6 минут"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png22:46","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":10029,"categoria":"REG","categoriaDescrizione":null,"origine":"BARDONECCHIA","codOrigine":"S00202","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"15 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415655900000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"22:45","compOrarioPartenza":null,"compNumeroTreno":"REG 10029","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png22:45","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":9746,"categoria":"ES*","categoriaDescrizione":null,"origine":"VENEZIA SANTA LUCIA","codOrigine":"S02593","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":true,"codiceCliente":1,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"11 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"B","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415656200000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":17,"tipoProdotto":"102","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"22:50","compOrarioPartenza":null,"compNumeroTreno":"ES* FB 9746","compOrientamento":["1 classe in testa","1st Class in the head","1. Klasse Zugspitze ","1ère classe en tête","1ª clase al inicio del tren","clasa I la începutul trenului","1等車前方","一等车厢在前几节车厢","1 класс в головной части поезда"],"compTipologiaTreno":"nazionale","compClassRitardoTxt":"ritardo01_txt","compClassRitardoLine":"ritardo01_line","compImgRitardo2":"/vt_static/img/legenda/icone_legenda/ritardo01.png","compImgRitardo":"/vt_static/img/legenda/icone_legenda/ritardo01.png","compRitardo":["ritardo 17 min.","delay 17 min.","Verspätung 17 Min.","retard de 17 min.","retraso de 17 min.","întârziere 17 min.","遅延 17 分","误点 17分钟","опоздание на 17 минут"],"compRitardoAndamento":["con un ritardo di 17 min.","17 minutes late","mit einer Verzögerung von 17 Min.","avec un retard de 17 min.","con un retraso de 17 min.","cu o întârziere de 17 min.","17 分の遅延","误点 17分钟","с опозданием в 17 минут"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png23:07","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":2030,"categoria":"REG","categoriaDescrizione":null,"origine":"MILANO CENTRALE","codOrigine":"S01700","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"13 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415657220000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"23:07","compOrarioPartenza":null,"compNumeroTreno":"REG 2030","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png23:07","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":9654,"categoria":"ES*","categoriaDescrizione":null,"origine":"ROMA TERMINI","codOrigine":"S08409","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":true,"codiceCliente":1,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"16 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"B","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415657520000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":8,"tipoProdotto":"100","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"23:12","compOrarioPartenza":null,"compNumeroTreno":"ES* FR 9654","compOrientamento":["Executive in testa","Executive in the head","Executive Zugspitze","Executive en tête","Executive al inicio del tren","Executive la începutul trenului","頭の中でExecutive","Executive在前几节车厢","Executive в головной части поезда"],"compTipologiaTreno":"nazionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["ritardo 8 min.","delay 8 min.","Verspätung 8 Min.","retard de 8 min.","retraso de 8 min.","întârziere 8 min.","遅延 8 分","误点 8分钟","опоздание на 8 минут"],"compRitardoAndamento":["con un ritardo di 8 min.","8 minutes late","mit einer Verzögerung von 8 Min.","avec un retard de 8 min.","con un retraso de 8 min.","cu o întârziere de 8 min.","8 分の遅延","误点 8分钟","с опозданием в 8 минут"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png23:20","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":24877,"categoria":"REG","categoriaDescrizione":null,"origine":"SUSA","codOrigine":"S00260","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"4 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415657820000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"23:17","compOrarioPartenza":null,"compNumeroTreno":"REG 24877","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png23:17","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":33800,"categoria":"REG","categoriaDescrizione":null,"origine":"SAVONA","codOrigine":"S04801","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":null,"binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415658900000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"23:35","compOrarioPartenza":null,"compNumeroTreno":"REG 33800","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png23:35","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":2532,"categoria":"REG","categoriaDescrizione":null,"origine":"GENOVA BRIGNOLE","codOrigine":"S04702","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"5 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415659200000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"23:40","compOrarioPartenza":null,"compNumeroTreno":"REG 2532","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png23:40","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":10031,"categoria":"REG","categoriaDescrizione":null,"origine":"BARDONECCHIA","codOrigine":"S00202","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"15 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415659500000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"23:45","compOrarioPartenza":null,"compNumeroTreno":"REG 10031","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png23:45","compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":2032,"categoria":"REG","categoriaDescrizione":null,"origine":"MILANO CENTRALE","codOrigine":"S01700","destinazione":null,"codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":"13 ","binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":null,"subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":null,"orarioArrivo":1415661000000,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":null,"compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":null,"compOrarioArrivoZero":null,"compOrarioArrivo":"00:10","compOrarioPartenza":null,"compNumeroTreno":"REG 2032","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":"/vt_static/img/legenda/icone_legenda/regolare.png00:10","compDurata":"","compImgCambiNumerazione":" "}]
|
87
|
+
JSON
|
88
|
+
|
89
|
+
# stubs for Schedule.find_station_departures
|
90
|
+
stub_request(:get, "http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/partenze/S00219/Mon%20Nov%2010%202014%2022:18:44%20GMT+0100%20(CET)").
|
91
|
+
to_return(status: 200, headers: {}, body: <<-JSON.squish)
|
92
|
+
[{"numeroTreno":10030,"categoria":"REG","categoriaDescrizione":null,"origine":null,"codOrigine":"S00219","destinazione":"BARDONECCHIA","codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":null,"binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":"18 ","subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":1415654400000,"orarioArrivo":null,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":"22:20","compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":"22:20","compOrarioArrivoZero":null,"compOrarioArrivo":null,"compOrarioPartenza":"22:20","compNumeroTreno":"REG 10030","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":null,"compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":23601,"categoria":"REG","categoriaDescrizione":null,"origine":null,"codOrigine":"S00219","destinazione":"ALESSANDRIA","codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":null,"binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":"8 ","subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":1415654400000,"orarioArrivo":null,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":"22:20","compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":"22:20","compOrarioArrivoZero":null,"compOrarioArrivo":null,"compOrarioPartenza":"22:20","compNumeroTreno":"REG 23601","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":null,"compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":24835,"categoria":"REG","categoriaDescrizione":null,"origine":null,"codOrigine":"S00219","destinazione":"IVREA","codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":null,"binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":"15 ","subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":1415654880000,"orarioArrivo":null,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":"22:28","compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":"22:28","compOrarioArrivoZero":null,"compOrarioArrivo":null,"compOrarioPartenza":"22:28","compNumeroTreno":"REG 24835","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":null,"compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":24876,"categoria":"REG","categoriaDescrizione":null,"origine":null,"codOrigine":"S00219","destinazione":"BUSSOLENO","codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":null,"binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":"14 ","subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":1415655900000,"orarioArrivo":null,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":"22:45","compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":"22:45","compOrarioArrivoZero":null,"compOrarioArrivo":null,"compOrarioPartenza":"22:45","compNumeroTreno":"REG 24876","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":null,"compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":2033,"categoria":"REG","categoriaDescrizione":null,"origine":null,"codOrigine":"S00219","destinazione":"MILANO CENTRALE","codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":null,"binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":"13 ","subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":1415656440000,"orarioArrivo":null,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":"22:54","compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":"22:54","compOrarioArrivoZero":null,"compOrarioArrivo":null,"compOrarioPartenza":"22:54","compNumeroTreno":"REG 2033","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":null,"compDurata":"","compImgCambiNumerazione":" "},{"numeroTreno":10221,"categoria":"REG","categoriaDescrizione":null,"origine":null,"codOrigine":"S00219","destinazione":"CUNEO","codDestinazione":null,"origineEstera":null,"destinazioneEstera":null,"oraPartenzaEstera":null,"oraArrivoEstera":null,"tratta":0,"regione":0,"origineZero":null,"destinazioneZero":null,"orarioPartenzaZero":null,"orarioArrivoZero":null,"circolante":false,"codiceCliente":2,"binarioEffettivoArrivoCodice":null,"binarioEffettivoArrivoDescrizione":null,"binarioEffettivoArrivoTipo":null,"binarioProgrammatoArrivoCodice":null,"binarioProgrammatoArrivoDescrizione":null,"binarioEffettivoPartenzaCodice":null,"binarioEffettivoPartenzaDescrizione":null,"binarioEffettivoPartenzaTipo":null,"binarioProgrammatoPartenzaCodice":null,"binarioProgrammatoPartenzaDescrizione":"3 ","subTitle":null,"esisteCorsaZero":null,"orientamento":"","inStazione":false,"haCambiNumero":false,"nonPartito":false,"provvedimento":0,"riprogrammazione":"N","orarioPartenza":1415658300000,"orarioArrivo":null,"stazionePartenza":null,"stazioneArrivo":null,"statoTreno":null,"corrispondenze":null,"servizi":null,"ritardo":0,"tipoProdotto":"","compOrarioPartenzaZeroEffettivo":"23:25","compOrarioArrivoZeroEffettivo":null,"compOrarioPartenzaZero":"23:25","compOrarioArrivoZero":null,"compOrarioArrivo":null,"compOrarioPartenza":"23:25","compNumeroTreno":"REG 10221","compOrientamento":["--","--","--","--","--","--","--","--","--"],"compTipologiaTreno":"regionale","compClassRitardoTxt":"","compClassRitardoLine":"regolare_line","compImgRitardo2":"","compImgRitardo":"/vt_static/img/legenda/icone_legenda/regolare.png","compRitardo":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compRitardoAndamento":["in orario","on time","pünktlich","à l'heure","en horario","conform orarului","定刻","按时","по расписанию"],"compInStazionePartenza":["","","","","","","","",""],"compInStazioneArrivo":["","","","","","","","",""],"compOrarioEffettivoArrivo":null,"compDurata":"","compImgCambiNumerazione":" "}]
|
93
|
+
JSON
|
80
94
|
end
|
81
95
|
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe StationMaster::
|
4
|
-
let(:station) { StationMaster::
|
3
|
+
describe StationMaster::Station do
|
4
|
+
let(:station) { StationMaster::Station }
|
5
5
|
|
6
6
|
context "#all" do
|
7
|
-
let(:all_stations) { StationMaster::
|
7
|
+
let(:all_stations) { StationMaster::Station.all }
|
8
8
|
|
9
9
|
it "returns all stations" do
|
10
10
|
expect(station).to respond_to(:all)
|
11
11
|
expect(all_stations).to be_a(Array)
|
12
12
|
expect(all_stations).not_to be_empty
|
13
13
|
expect(all_stations.count).to eq(3)
|
14
|
-
expect(all_stations).to eq([
|
14
|
+
expect(all_stations.map(&:to_hash)).to eq([
|
15
15
|
{
|
16
16
|
station_code: "S11212",
|
17
17
|
latitude: 40.787682,
|
@@ -37,7 +37,7 @@ describe StationMaster::Ask::Station do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
context "#find_by_city" do
|
40
|
-
let(:found_stations) { StationMaster::
|
40
|
+
let(:found_stations) { StationMaster::Station.find_by_city('Tor') }
|
41
41
|
|
42
42
|
it "returns stations that match with city name" do
|
43
43
|
expect(station).to respond_to(:find_by_city)
|
data/station_master.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: station_master
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Ordine
|
@@ -28,11 +28,12 @@ files:
|
|
28
28
|
- Rakefile
|
29
29
|
- lib/station_master.rb
|
30
30
|
- lib/station_master/ask.rb
|
31
|
-
- lib/station_master/
|
32
|
-
- lib/station_master/
|
31
|
+
- lib/station_master/schedule.rb
|
32
|
+
- lib/station_master/station.rb
|
33
33
|
- lib/station_master/version.rb
|
34
|
+
- spec/schedule_spec.rb
|
34
35
|
- spec/spec_helper.rb
|
35
|
-
- spec/
|
36
|
+
- spec/station_spec.rb
|
36
37
|
- station_master.gemspec
|
37
38
|
homepage: https://github.com/StefanoOrdine/station_master
|
38
39
|
licenses:
|
@@ -59,5 +60,6 @@ signing_key:
|
|
59
60
|
specification_version: 4
|
60
61
|
summary: This gem provide an interface to an api from www.viaggiatreno.it public site.
|
61
62
|
test_files:
|
63
|
+
- spec/schedule_spec.rb
|
62
64
|
- spec/spec_helper.rb
|
63
|
-
- spec/
|
65
|
+
- spec/station_spec.rb
|
@@ -1,72 +0,0 @@
|
|
1
|
-
module StationMaster
|
2
|
-
module Ask
|
3
|
-
class Station
|
4
|
-
class << self
|
5
|
-
def all
|
6
|
-
stations_array = []
|
7
|
-
index = 0
|
8
|
-
begin
|
9
|
-
response = MultiJson::load(remote_call(:stations, page: index), symbolize_keys: true).inject([]) do |array, station|
|
10
|
-
station_code = station[:codiceStazione]
|
11
|
-
latitude = station[:lat]
|
12
|
-
longitude = station[:lon]
|
13
|
-
region_id = find_region_id_by_code(station[:codiceStazione])
|
14
|
-
station_details = find_details(station_code, region_id)
|
15
|
-
location = (station_details[:localita][:nomeLungo] || '').split.map(&:capitalize).join(' ') if station_details
|
16
|
-
|
17
|
-
array << {
|
18
|
-
station_code: station_code,
|
19
|
-
latitude: latitude,
|
20
|
-
longitude: longitude,
|
21
|
-
region_id: region_id,
|
22
|
-
location: location
|
23
|
-
}
|
24
|
-
end
|
25
|
-
stations_array += response
|
26
|
-
index += 1
|
27
|
-
end while response.any?
|
28
|
-
|
29
|
-
stations_array
|
30
|
-
end
|
31
|
-
|
32
|
-
def find_by_city(city)
|
33
|
-
remote_call(:search, { city: city }).split(/\n/).map(&:strip).inject({}) { |hash, entry| hash.merge!({ entry.split('|').first.to_sym => entry.split('|').last }) }
|
34
|
-
end
|
35
|
-
|
36
|
-
def find_region_id_by_code(station_code)
|
37
|
-
remote_call(:region_id, station_code: station_code)
|
38
|
-
end
|
39
|
-
|
40
|
-
def find_details(station_code, region_id)
|
41
|
-
MultiJson::load(remote_call(:station_details, station_code: station_code, region_id: region_id), symbolize_keys: true)
|
42
|
-
end
|
43
|
-
|
44
|
-
private
|
45
|
-
def remote_call(resource, options = {})
|
46
|
-
request_url = case resource
|
47
|
-
when :stations then
|
48
|
-
STATION_MASTER_BASE_URL + "elencoStazioni/#{options[:page] || 0}"
|
49
|
-
when :region_id then
|
50
|
-
STATION_MASTER_BASE_URL + "regione/#{options[:station_code] || 0}"
|
51
|
-
when :station_details
|
52
|
-
STATION_MASTER_BASE_URL + "dettaglioStazione/#{options[:station_code] || 0}/#{options[:region_id] || 0}"
|
53
|
-
when :search
|
54
|
-
STATION_MASTER_BASE_URL + "autocompletaStazione/#{options[:city] || ''}"
|
55
|
-
else
|
56
|
-
''
|
57
|
-
end
|
58
|
-
|
59
|
-
remote_call!(request_url)
|
60
|
-
end
|
61
|
-
|
62
|
-
def remote_call!(request_url)
|
63
|
-
url = URI.parse(request_url)
|
64
|
-
http = Net::HTTP.new(url.host, url.port)
|
65
|
-
http.read_timeout = 2
|
66
|
-
|
67
|
-
http.get(url).body
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|