ruby-irail 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/ruby-irail/packages/nmbs/api.rb +37 -73
- data/lib/ruby-irail/packages/nmbs/parser/{document_parser.rb → xml_parser.rb} +9 -14
- data/lib/version.rb +1 -1
- data/spec/packages/nmbs/api_spec.rb +67 -131
- data/spec/packages/nmbs/parser/{document_parser_spec.rb → xml_parser_spec.rb} +19 -19
- metadata +12 -12
@@ -4,113 +4,77 @@ module IRail::API
|
|
4
4
|
STATIONS_URI = "stations/"
|
5
5
|
CONNECTIONS_URI = "connections/"
|
6
6
|
VEHICLE_URI = "vehicle/"
|
7
|
-
|
7
|
+
DEPARTURES_URI = "liveboard/"
|
8
|
+
ARRIVALS_URI = "liveboard/"
|
8
9
|
|
9
10
|
def stations(options = {})
|
10
|
-
|
11
|
-
xml_station_list = get_station_list(station_list_url, options)
|
12
|
-
IRail::NMBS::DocumentParser.parse_stations(xml_station_list)
|
11
|
+
get_resource(:stations, options)
|
13
12
|
end
|
14
13
|
|
15
14
|
def connections(origin_station, destination_station, options = {})
|
16
|
-
|
17
|
-
|
18
|
-
IRail::NMBS::DocumentParser.parse_connections(xml_connections)
|
15
|
+
options = build_connections_option_hash(origin_station, destination_station, options)
|
16
|
+
get_resource(:connections, options)
|
19
17
|
end
|
20
18
|
|
21
19
|
def vehicle(vehicle_id, options = {})
|
22
|
-
|
23
|
-
|
24
|
-
IRail::NMBS::DocumentParser.parse_vehicle(xml_vehicle)
|
20
|
+
options = build_vehicle_option_hash(vehicle_id, options)
|
21
|
+
get_resource(:vehicle, options)
|
25
22
|
end
|
26
23
|
|
27
24
|
def departures(station_id, options = {})
|
28
|
-
|
29
|
-
|
30
|
-
IRail::NMBS::DocumentParser.parse_liveboard(xml_departures)
|
25
|
+
options = build_departures_option_hash(station_id, options)
|
26
|
+
get_resource(:departures, options)
|
31
27
|
end
|
32
28
|
|
33
29
|
def arrivals(station_id, options = {})
|
34
|
-
|
35
|
-
|
36
|
-
IRail::NMBS::DocumentParser.parse_liveboard(xml_arrivals)
|
37
|
-
end
|
38
|
-
|
39
|
-
def get_station_list(station_list_url, options = {})
|
40
|
-
options = { :query => options } if options.any?
|
41
|
-
IRail::Request.get(station_list_url, options)
|
42
|
-
end
|
43
|
-
|
44
|
-
def get_connections(connections_url, origin_station, destination_station, options = {})
|
45
|
-
options = build_connections_option_hash(origin_station, destination_station, options)
|
46
|
-
IRail::Request.get(connections_url, options)
|
30
|
+
options = build_arrivals_option_hash(station_id, options)
|
31
|
+
get_resource(:arrivals, options)
|
47
32
|
end
|
48
33
|
|
49
|
-
def
|
50
|
-
|
51
|
-
|
34
|
+
def get_resource(resource, options)
|
35
|
+
uri = IRail::API::NMBS.const_get("#{resource.upcase}_URI")
|
36
|
+
url = build_url(uri)
|
37
|
+
xml = call_api(url, options)
|
38
|
+
IRail::NMBS::XMLParser.send("parse_#{resource}", xml)
|
52
39
|
end
|
53
40
|
|
54
|
-
def
|
55
|
-
options =
|
56
|
-
IRail::Request.get(
|
41
|
+
def call_api(url, options = {})
|
42
|
+
options = build_query_options_hash(options)
|
43
|
+
IRail::Request.get(url, options)
|
57
44
|
end
|
58
45
|
|
59
|
-
|
60
|
-
|
61
|
-
|
46
|
+
private
|
47
|
+
def build_query_options_hash(options)
|
48
|
+
{ :query => options }
|
62
49
|
end
|
63
50
|
|
64
|
-
private
|
65
51
|
def build_connections_option_hash(origin_station, destination_station, options = {})
|
66
|
-
{
|
67
|
-
:
|
68
|
-
|
69
|
-
|
70
|
-
})
|
71
|
-
}
|
52
|
+
options.merge({
|
53
|
+
:from => origin_station.name,
|
54
|
+
:to => destination_station.name
|
55
|
+
})
|
72
56
|
end
|
73
57
|
|
74
58
|
def build_vehicle_option_hash(vehicle_id, options = {})
|
75
|
-
{
|
76
|
-
:query => options.merge({
|
77
|
-
:id => vehicle_id
|
78
|
-
})
|
79
|
-
}
|
59
|
+
options.merge({ :id => vehicle_id })
|
80
60
|
end
|
81
61
|
|
82
62
|
def build_departures_option_hash(station_id, options = {})
|
83
|
-
{
|
84
|
-
:
|
85
|
-
|
86
|
-
|
87
|
-
})
|
88
|
-
}
|
63
|
+
options.merge({
|
64
|
+
:id => station_id,
|
65
|
+
:arrdep => "DEP"
|
66
|
+
})
|
89
67
|
end
|
90
68
|
|
91
69
|
def build_arrivals_option_hash(station_id, options = {})
|
92
|
-
{
|
93
|
-
:
|
94
|
-
|
95
|
-
|
96
|
-
})
|
97
|
-
}
|
98
|
-
end
|
99
|
-
|
100
|
-
def build_station_list_url
|
101
|
-
[API_URL, STATIONS_URI].join('/')
|
102
|
-
end
|
103
|
-
|
104
|
-
def build_connections_url
|
105
|
-
[API_URL, CONNECTIONS_URI].join('/')
|
106
|
-
end
|
107
|
-
|
108
|
-
def build_vehicle_url
|
109
|
-
[API_URL, VEHICLE_URI].join('/')
|
70
|
+
options.merge({
|
71
|
+
:id => station_id,
|
72
|
+
:arrdep => "ARR"
|
73
|
+
})
|
110
74
|
end
|
111
75
|
|
112
|
-
def
|
113
|
-
[API_URL,
|
76
|
+
def build_url(uri)
|
77
|
+
[API_URL, uri].join('/')
|
114
78
|
end
|
115
79
|
end
|
116
80
|
end
|
@@ -1,23 +1,23 @@
|
|
1
1
|
module IRail::NMBS
|
2
|
-
class
|
2
|
+
class XMLParser
|
3
3
|
STATION_XPATH = "//station"
|
4
4
|
CONNECTION_XPATH = "//connection"
|
5
5
|
VEHICLE_XPATH = "//vehicleinformation"
|
6
6
|
|
7
7
|
def self.parse_stations(xml_string)
|
8
|
-
|
8
|
+
xml_payload(xml_string, STATION_XPATH).inject([]) do |stations, xml_station|
|
9
9
|
stations << IRail::NMBS::Station.from_xml(xml_station.to_s)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.parse_connections(xml_string)
|
14
|
-
|
14
|
+
xml_payload(xml_string, CONNECTION_XPATH).inject([]) do |connections, xml_connection|
|
15
15
|
connections << IRail::NMBS::Connection.from_xml(xml_connection.to_s)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.parse_vehicle(xml_string)
|
20
|
-
vehicle =
|
20
|
+
vehicle = xml_payload(xml_string, VEHICLE_XPATH)
|
21
21
|
IRail::NMBS::VehicleInformation.from_xml(vehicle.to_s)
|
22
22
|
end
|
23
23
|
|
@@ -25,19 +25,14 @@ module IRail::NMBS
|
|
25
25
|
IRail::NMBS::Liveboard.from_xml(xml_string)
|
26
26
|
end
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.xml_stations(xml_string)
|
34
|
-
xml_payload = Nokogiri::XML(xml_string)
|
35
|
-
xml_payload.xpath(STATION_XPATH)
|
28
|
+
class << self
|
29
|
+
alias :parse_departures :parse_liveboard
|
30
|
+
alias :parse_arrivals :parse_liveboard
|
36
31
|
end
|
37
32
|
|
38
|
-
def self.
|
33
|
+
def self.xml_payload(xml_string, xpath)
|
39
34
|
xml_payload = Nokogiri::XML(xml_string)
|
40
|
-
xml_payload.xpath(
|
35
|
+
xml_payload.xpath(xpath)
|
41
36
|
end
|
42
37
|
end
|
43
38
|
end
|
data/lib/version.rb
CHANGED
@@ -9,21 +9,28 @@ describe IRail::API::NMBS do
|
|
9
9
|
let(:connections_url) { mock("Connections url") }
|
10
10
|
let(:xml_connections) { mock("Xml connections") }
|
11
11
|
let(:connections) { mock("Connections") }
|
12
|
+
let(:connections_options) { mock("Connections options") }
|
12
13
|
let(:options) { mock("Options") }
|
13
14
|
|
14
15
|
before :each do
|
15
|
-
irail.stub(:
|
16
|
-
irail.stub(:
|
17
|
-
|
16
|
+
irail.stub(:build_url => connections_url)
|
17
|
+
irail.stub(:call_api => xml_connections)
|
18
|
+
irail.stub(:build_connections_option_hash => connections_options)
|
19
|
+
IRail::NMBS::XMLParser.stub(:parse_connections => connections)
|
18
20
|
end
|
19
21
|
|
20
22
|
it "builds the connections url" do
|
21
|
-
irail.should_receive(:
|
23
|
+
irail.should_receive(:build_url).with(IRail::API::NMBS::CONNECTIONS_URI)
|
22
24
|
irail.connections(origin_station, destination_station)
|
23
25
|
end
|
24
26
|
|
27
|
+
it "builds the connections options" do
|
28
|
+
irail.should_receive(:build_connections_option_hash).with(origin_station, destination_station, options)
|
29
|
+
irail.connections(origin_station, destination_station, options)
|
30
|
+
end
|
31
|
+
|
25
32
|
it "gets the connections" do
|
26
|
-
irail.should_receive(:
|
33
|
+
irail.should_receive(:call_api).with(connections_url, connections_options)
|
27
34
|
irail.connections(origin_station, destination_station, options)
|
28
35
|
end
|
29
36
|
|
@@ -33,25 +40,32 @@ describe IRail::API::NMBS do
|
|
33
40
|
end
|
34
41
|
|
35
42
|
describe :vehicle do
|
36
|
-
let(:vehicle_id)
|
37
|
-
let(:vehicle_url)
|
38
|
-
let(:xml_vehicle)
|
39
|
-
let(:vehicle)
|
40
|
-
let(:options)
|
43
|
+
let(:vehicle_id) { mock("Vehicle id") }
|
44
|
+
let(:vehicle_url) { mock("Vehicle url") }
|
45
|
+
let(:xml_vehicle) { mock("Xml vehicle") }
|
46
|
+
let(:vehicle) { mock("vehicle") }
|
47
|
+
let(:options) { mock("Options") }
|
48
|
+
let(:vehicle_options) { mock("Vehicle options") }
|
41
49
|
|
42
50
|
before :each do
|
43
|
-
irail.stub(:
|
44
|
-
irail.stub(:
|
45
|
-
|
51
|
+
irail.stub(:build_url => vehicle_url)
|
52
|
+
irail.stub(:call_api => xml_vehicle)
|
53
|
+
irail.stub(:build_vehicle_option_hash => vehicle_options)
|
54
|
+
IRail::NMBS::XMLParser.stub(:parse_vehicle => vehicle)
|
46
55
|
end
|
47
56
|
|
48
57
|
it "builds the vehicle url" do
|
49
|
-
irail.should_receive(:
|
58
|
+
irail.should_receive(:build_url).with(IRail::API::NMBS::VEHICLE_URI)
|
50
59
|
irail.vehicle(vehicle_id)
|
51
60
|
end
|
52
61
|
|
62
|
+
it "builds the vehicle options" do
|
63
|
+
irail.should_receive(:build_vehicle_option_hash).with(vehicle_id, options)
|
64
|
+
irail.vehicle(vehicle_id, options)
|
65
|
+
end
|
66
|
+
|
53
67
|
it "gets the vehicle" do
|
54
|
-
irail.should_receive(:
|
68
|
+
irail.should_receive(:call_api).with(vehicle_url, vehicle_options)
|
55
69
|
irail.vehicle(vehicle_id, options)
|
56
70
|
end
|
57
71
|
|
@@ -67,18 +81,18 @@ describe IRail::API::NMBS do
|
|
67
81
|
let(:options) { mock("Options") }
|
68
82
|
|
69
83
|
before :each do
|
70
|
-
irail.stub(:
|
71
|
-
irail.stub(:
|
72
|
-
IRail::NMBS::
|
84
|
+
irail.stub(:build_url => station_list_url)
|
85
|
+
irail.stub(:call_api => xml_station_list)
|
86
|
+
IRail::NMBS::XMLParser.stub(:parse_stations => stations)
|
73
87
|
end
|
74
88
|
|
75
89
|
it "builds the station list url" do
|
76
|
-
irail.should_receive(:
|
90
|
+
irail.should_receive(:build_url).with(IRail::API::NMBS::STATIONS_URI)
|
77
91
|
irail.stations(options)
|
78
92
|
end
|
79
93
|
|
80
94
|
it "gets the xml station list" do
|
81
|
-
irail.should_receive(:
|
95
|
+
irail.should_receive(:call_api).with(station_list_url, options)
|
82
96
|
irail.stations(options)
|
83
97
|
end
|
84
98
|
|
@@ -93,20 +107,27 @@ describe IRail::API::NMBS do
|
|
93
107
|
let(:options) { mock("Options") }
|
94
108
|
let(:liveboard) { mock("Liveboard") }
|
95
109
|
let(:xml_departures) { mock("Xml departures") }
|
110
|
+
let(:departures_options) { mock("Departures options") }
|
96
111
|
|
97
112
|
before :each do
|
98
|
-
irail.stub(:
|
99
|
-
irail.stub(:
|
100
|
-
|
113
|
+
irail.stub(:build_url => liveboard_url)
|
114
|
+
irail.stub(:call_api => xml_departures)
|
115
|
+
irail.stub(:build_departures_option_hash => departures_options)
|
116
|
+
IRail::NMBS::XMLParser.stub(:parse_departures => liveboard)
|
101
117
|
end
|
102
118
|
|
103
119
|
it "builds the liveboard url" do
|
104
|
-
irail.should_receive(:
|
120
|
+
irail.should_receive(:build_url).with(IRail::API::NMBS::DEPARTURES_URI)
|
121
|
+
irail.departures(station_id, options)
|
122
|
+
end
|
123
|
+
|
124
|
+
it "builds the departures options" do
|
125
|
+
irail.should_receive(:build_departures_option_hash).with(station_id, options)
|
105
126
|
irail.departures(station_id, options)
|
106
127
|
end
|
107
128
|
|
108
129
|
it "gets the departures xml" do
|
109
|
-
irail.should_receive(:
|
130
|
+
irail.should_receive(:call_api).with(liveboard_url, departures_options)
|
110
131
|
irail.departures(station_id, options)
|
111
132
|
end
|
112
133
|
|
@@ -121,20 +142,27 @@ describe IRail::API::NMBS do
|
|
121
142
|
let(:options) { mock("Options") }
|
122
143
|
let(:liveboard) { mock("Liveboard") }
|
123
144
|
let(:xml_arrivals) { mock("Xml arrivals") }
|
145
|
+
let(:arrivals_options) { mock("Arrivals options") }
|
124
146
|
|
125
147
|
before :each do
|
126
|
-
irail.stub(:
|
127
|
-
irail.stub(:
|
128
|
-
|
148
|
+
irail.stub(:build_url => liveboard_url)
|
149
|
+
irail.stub(:call_api => xml_arrivals)
|
150
|
+
irail.stub(:build_arrivals_option_hash => arrivals_options)
|
151
|
+
IRail::NMBS::XMLParser.stub(:parse_arrivals => liveboard)
|
129
152
|
end
|
130
153
|
|
131
154
|
it "builds the liveboard url" do
|
132
|
-
irail.should_receive(:
|
155
|
+
irail.should_receive(:build_url).with(IRail::API::NMBS::ARRIVALS_URI)
|
156
|
+
irail.arrivals(station_id, options)
|
157
|
+
end
|
158
|
+
|
159
|
+
it "builds the departures options" do
|
160
|
+
irail.should_receive(:build_arrivals_option_hash).with(station_id, options)
|
133
161
|
irail.arrivals(station_id, options)
|
134
162
|
end
|
135
163
|
|
136
164
|
it "gets the arrivals xml" do
|
137
|
-
irail.should_receive(:
|
165
|
+
irail.should_receive(:call_api).with(liveboard_url, arrivals_options)
|
138
166
|
irail.arrivals(station_id, options)
|
139
167
|
end
|
140
168
|
|
@@ -143,121 +171,29 @@ describe IRail::API::NMBS do
|
|
143
171
|
end
|
144
172
|
end
|
145
173
|
|
146
|
-
describe :
|
147
|
-
let(:
|
148
|
-
let(:destination_station) { mock("Destination station") }
|
149
|
-
let(:connections_url) { mock("Connections url") }
|
150
|
-
let(:options_hash) { mock("Options hash") }
|
151
|
-
let(:response) { mock("Response") }
|
152
|
-
let(:options) { mock("Oprions") }
|
153
|
-
|
154
|
-
before :each do
|
155
|
-
irail.stub(:build_connections_option_hash => options_hash)
|
156
|
-
IRail::Request.stub(:get => response)
|
157
|
-
end
|
158
|
-
|
159
|
-
it "builds the options hash" do
|
160
|
-
irail.should_receive(:build_connections_option_hash).with(origin_station, destination_station, options)
|
161
|
-
irail.get_connections(connections_url, origin_station, destination_station, options)
|
162
|
-
end
|
163
|
-
|
164
|
-
it "calls the connections url through a get request" do
|
165
|
-
IRail::Request.should_receive(:get).with(connections_url, options_hash)
|
166
|
-
irail.get_connections(connections_url, origin_station, destination_station)
|
167
|
-
end
|
168
|
-
|
169
|
-
it "returns the response" do
|
170
|
-
irail.get_connections(connections_url, origin_station, destination_station).should eql response
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
describe :get_departures do
|
175
|
-
let(:station_id) { mock("Station id") }
|
176
|
-
let(:options) { mock("Options") }
|
177
|
-
let(:liveboard_url) { mock("Liveboard url") }
|
174
|
+
describe :call_api do
|
175
|
+
let(:url) { mock("Connections url") }
|
178
176
|
let(:options_hash) { mock("Options hash") }
|
179
177
|
let(:response) { mock("Response") }
|
178
|
+
let(:options) { mock("Oprions") }
|
180
179
|
|
181
180
|
before :each do
|
182
|
-
irail.stub(:
|
181
|
+
irail.stub(:build_query_options_hash => options_hash)
|
183
182
|
IRail::Request.stub(:get => response)
|
184
183
|
end
|
185
184
|
|
186
185
|
it "builds the options hash" do
|
187
|
-
irail.should_receive(:
|
188
|
-
irail.
|
186
|
+
irail.should_receive(:build_query_options_hash).with(options)
|
187
|
+
irail.call_api(url, options)
|
189
188
|
end
|
190
189
|
|
191
190
|
it "calls the connections url through a get request" do
|
192
|
-
IRail::Request.should_receive(:get).with(
|
193
|
-
irail.
|
191
|
+
IRail::Request.should_receive(:get).with(url, options_hash)
|
192
|
+
irail.call_api(url, options)
|
194
193
|
end
|
195
194
|
|
196
195
|
it "returns the response" do
|
197
|
-
irail.
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
describe :get_arrivals do
|
202
|
-
let(:station_id) { mock("Station id") }
|
203
|
-
let(:options) { mock("Options") }
|
204
|
-
let(:liveboard_url) { mock("Liveboard url") }
|
205
|
-
let(:options_hash) { mock("Options hash") }
|
206
|
-
let(:response) { mock("Response") }
|
207
|
-
|
208
|
-
before :each do
|
209
|
-
irail.stub(:build_arrivals_option_hash => options_hash)
|
210
|
-
IRail::Request.stub(:get => response)
|
211
|
-
end
|
212
|
-
|
213
|
-
it "builds the options hash" do
|
214
|
-
irail.should_receive(:build_arrivals_option_hash).with(station_id, options)
|
215
|
-
irail.get_arrivals(liveboard_url, station_id, options)
|
216
|
-
end
|
217
|
-
|
218
|
-
it "calls the connections url through a get request" do
|
219
|
-
IRail::Request.should_receive(:get).with(liveboard_url, options_hash)
|
220
|
-
irail.get_arrivals(liveboard_url, station_id, options)
|
221
|
-
end
|
222
|
-
|
223
|
-
it "returns the response" do
|
224
|
-
irail.get_arrivals(liveboard_url, station_id, options).should eql response
|
225
|
-
end
|
226
|
-
end
|
227
|
-
|
228
|
-
describe :get_station_list do
|
229
|
-
let(:url) { mock("Url") }
|
230
|
-
let(:response) { mock("Response") }
|
231
|
-
|
232
|
-
before :each do
|
233
|
-
IRail::Request.stub(:get => response)
|
234
|
-
end
|
235
|
-
|
236
|
-
context "when there are no options" do
|
237
|
-
let(:options) { {} }
|
238
|
-
|
239
|
-
it "calls the station list url through a get request" do
|
240
|
-
IRail::Request.should_receive(:get).with(url, options)
|
241
|
-
irail.get_station_list(url, options)
|
242
|
-
end
|
243
|
-
|
244
|
-
it "returns the response" do
|
245
|
-
irail.get_station_list(url, options).should eql response
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
context "when there are options" do
|
250
|
-
let(:options) { {:a => 1} }
|
251
|
-
|
252
|
-
it "calls the station list url with query options" do
|
253
|
-
expected_options = { :query => options }
|
254
|
-
IRail::Request.should_receive(:get).with(url, expected_options)
|
255
|
-
irail.get_station_list(url, options)
|
256
|
-
end
|
257
|
-
|
258
|
-
it "returns the response" do
|
259
|
-
irail.get_station_list(url, options).should eql response
|
260
|
-
end
|
196
|
+
irail.call_api(url, options).should eql response
|
261
197
|
end
|
262
198
|
end
|
263
199
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require_relative "../../../../lib/ruby-irail/packages/nmbs/parser/
|
1
|
+
require_relative "../../../../lib/ruby-irail/packages/nmbs/parser/xml_parser.rb"
|
2
2
|
|
3
|
-
describe IRail::NMBS::
|
3
|
+
describe IRail::NMBS::XMLParser do
|
4
4
|
module Nokogiri
|
5
5
|
module XML
|
6
6
|
end
|
@@ -28,23 +28,23 @@ describe IRail::NMBS::DocumentParser do
|
|
28
28
|
|
29
29
|
it "gets the xml payload from the string passed as parameter" do
|
30
30
|
Nokogiri.should_receive(:XML).with(xml_string)
|
31
|
-
IRail::NMBS::
|
31
|
+
IRail::NMBS::XMLParser.parse_stations(xml_string)
|
32
32
|
end
|
33
33
|
|
34
34
|
it "extracts the stations from the xml payload" do
|
35
|
-
xml_payload.should_receive(:xpath).with(IRail::NMBS::
|
36
|
-
IRail::NMBS::
|
35
|
+
xml_payload.should_receive(:xpath).with(IRail::NMBS::XMLParser::STATION_XPATH)
|
36
|
+
IRail::NMBS::XMLParser.parse_stations(xml_string)
|
37
37
|
end
|
38
38
|
|
39
39
|
it "creates a new station for all parsed station attributes" do
|
40
40
|
stations.each do |station|
|
41
41
|
IRail::NMBS::Station.should_receive(:from_xml).with(station.to_s)
|
42
42
|
end
|
43
|
-
IRail::NMBS::
|
43
|
+
IRail::NMBS::XMLParser.parse_stations(xml_string)
|
44
44
|
end
|
45
45
|
|
46
46
|
it "returns as many stations as in the xml payload" do
|
47
|
-
IRail::NMBS::
|
47
|
+
IRail::NMBS::XMLParser.parse_stations(xml_string).size.should eql stations.size
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -61,23 +61,23 @@ describe IRail::NMBS::DocumentParser do
|
|
61
61
|
|
62
62
|
it "gets the xml payload from the string passed as parameter" do
|
63
63
|
Nokogiri.should_receive(:XML).with(xml_string)
|
64
|
-
IRail::NMBS::
|
64
|
+
IRail::NMBS::XMLParser.parse_connections(xml_string)
|
65
65
|
end
|
66
66
|
|
67
67
|
it "extracts the connections from the xml payload" do
|
68
|
-
xml_payload.should_receive(:xpath).with(IRail::NMBS::
|
69
|
-
IRail::NMBS::
|
68
|
+
xml_payload.should_receive(:xpath).with(IRail::NMBS::XMLParser::CONNECTION_XPATH)
|
69
|
+
IRail::NMBS::XMLParser.parse_connections(xml_string)
|
70
70
|
end
|
71
71
|
|
72
72
|
it "creates a new connection for all parsed connection attributes" do
|
73
73
|
connections.each do |connection|
|
74
74
|
IRail::NMBS::Connection.should_receive(:from_xml).with(connection.to_s)
|
75
75
|
end
|
76
|
-
IRail::NMBS::
|
76
|
+
IRail::NMBS::XMLParser.parse_connections(xml_string)
|
77
77
|
end
|
78
78
|
|
79
79
|
it "returns as many connections as in the xml payload" do
|
80
|
-
IRail::NMBS::
|
80
|
+
IRail::NMBS::XMLParser.parse_connections(xml_string).size.should eql connections.size
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -95,21 +95,21 @@ describe IRail::NMBS::DocumentParser do
|
|
95
95
|
|
96
96
|
it "gets the xml payload from the string passed as parameter" do
|
97
97
|
Nokogiri.should_receive(:XML).with(xml_string)
|
98
|
-
IRail::NMBS::
|
98
|
+
IRail::NMBS::XMLParser.parse_vehicle(xml_string)
|
99
99
|
end
|
100
100
|
|
101
101
|
it "extracts the vehicle from the xml payload" do
|
102
|
-
xml_payload.should_receive(:xpath).with(IRail::NMBS::
|
103
|
-
IRail::NMBS::
|
102
|
+
xml_payload.should_receive(:xpath).with(IRail::NMBS::XMLParser::VEHICLE_XPATH)
|
103
|
+
IRail::NMBS::XMLParser.parse_vehicle(xml_string)
|
104
104
|
end
|
105
105
|
|
106
106
|
it "creates a new vehicle for the parsed vehicle attributes" do
|
107
107
|
IRail::NMBS::VehicleInformation.should_receive(:from_xml).with(vehicle.to_s)
|
108
|
-
IRail::NMBS::
|
108
|
+
IRail::NMBS::XMLParser.parse_vehicle(xml_string)
|
109
109
|
end
|
110
110
|
|
111
111
|
it "returns a vehicule instance" do
|
112
|
-
IRail::NMBS::
|
112
|
+
IRail::NMBS::XMLParser.parse_vehicle(xml_string).should eql vehicle_instance
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -124,11 +124,11 @@ describe IRail::NMBS::DocumentParser do
|
|
124
124
|
|
125
125
|
it "creates a liveboard from the xml payload" do
|
126
126
|
IRail::NMBS::Liveboard.should_receive(:from_xml).with(xml_string)
|
127
|
-
IRail::NMBS::
|
127
|
+
IRail::NMBS::XMLParser.parse_liveboard(xml_string)
|
128
128
|
end
|
129
129
|
|
130
130
|
it "returns a liveboard instance" do
|
131
|
-
IRail::NMBS::
|
131
|
+
IRail::NMBS::XMLParser.parse_liveboard(xml_string).should eql liveboard_instance
|
132
132
|
end
|
133
133
|
end
|
134
134
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-irail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-07-19 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70350038980380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70350038980380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: httparty
|
27
|
-
requirement: &
|
27
|
+
requirement: &70350038979960 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70350038979960
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: roxml
|
38
|
-
requirement: &
|
38
|
+
requirement: &70350038979540 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70350038979540
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: nokogiri
|
49
|
-
requirement: &
|
49
|
+
requirement: &70350038979120 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70350038979120
|
58
58
|
description: IRail makes Belgian railway schedule easily available for anyone. This
|
59
59
|
is a Ruby wrapper for their API.
|
60
60
|
email:
|
@@ -89,7 +89,7 @@ files:
|
|
89
89
|
- lib/ruby-irail/packages/nmbs/models/vehicle.rb
|
90
90
|
- lib/ruby-irail/packages/nmbs/models/vehicle_information.rb
|
91
91
|
- lib/ruby-irail/packages/nmbs/models/vehicle_trip.rb
|
92
|
-
- lib/ruby-irail/packages/nmbs/parser/
|
92
|
+
- lib/ruby-irail/packages/nmbs/parser/xml_parser.rb
|
93
93
|
- lib/version.rb
|
94
94
|
- ruby-irail.gemspec
|
95
95
|
- spec/http/request_spec.rb
|
@@ -109,7 +109,7 @@ files:
|
|
109
109
|
- spec/packages/nmbs/models/vehicle_information_spec.rb
|
110
110
|
- spec/packages/nmbs/models/vehicle_spec.rb
|
111
111
|
- spec/packages/nmbs/models/vehicle_trip_spec.rb
|
112
|
-
- spec/packages/nmbs/parser/
|
112
|
+
- spec/packages/nmbs/parser/xml_parser_spec.rb
|
113
113
|
homepage: https://github.com/mlainez/ruby-irail
|
114
114
|
licenses: []
|
115
115
|
post_install_message:
|
@@ -152,4 +152,4 @@ test_files:
|
|
152
152
|
- spec/packages/nmbs/models/vehicle_information_spec.rb
|
153
153
|
- spec/packages/nmbs/models/vehicle_spec.rb
|
154
154
|
- spec/packages/nmbs/models/vehicle_trip_spec.rb
|
155
|
-
- spec/packages/nmbs/parser/
|
155
|
+
- spec/packages/nmbs/parser/xml_parser_spec.rb
|