ratis 3.4.3 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-gemset +1 -0
  3. data/.ruby-version +1 -0
  4. data/CHANGELOG +40 -39
  5. data/README.md +1 -15
  6. data/lib/ratis/area.rb +1 -1
  7. data/lib/ratis/config.rb +2 -4
  8. data/lib/ratis/fleet_location.rb +2 -7
  9. data/lib/ratis/landmark.rb +1 -4
  10. data/lib/ratis/location.rb +1 -3
  11. data/lib/ratis/location_type_ahead.rb +1 -4
  12. data/lib/ratis/next_bus.rb +0 -2
  13. data/lib/ratis/next_bus2.rb +1 -3
  14. data/lib/ratis/plantrip.rb +1 -3
  15. data/lib/ratis/request.rb +5 -2
  16. data/lib/ratis/schedule_nearby.rb +1 -3
  17. data/lib/ratis/timetable.rb +1 -5
  18. data/lib/ratis/version.rb +1 -1
  19. data/lib/ratis/walkstop.rb +1 -3
  20. data/ratis.gemspec +15 -15
  21. data/spec/ratis/area_spec.rb +1 -10
  22. data/spec/ratis/closest_stop_spec.rb +0 -14
  23. data/spec/ratis/config_spec.rb +21 -30
  24. data/spec/ratis/core_ext_spec.rb +0 -11
  25. data/spec/ratis/fleet_location_spec.rb +8 -25
  26. data/spec/ratis/itinerary_spec.rb +0 -10
  27. data/spec/ratis/landmark_category_spec.rb +1 -12
  28. data/spec/ratis/landmark_spec.rb +12 -25
  29. data/spec/ratis/location_spec.rb +5 -16
  30. data/spec/ratis/location_type_ahead_item_spec.rb +11 -9
  31. data/spec/ratis/location_type_ahead_spec.rb +7 -21
  32. data/spec/ratis/next_bus2_spec.rb +67 -81
  33. data/spec/ratis/next_bus_spec.rb +20 -37
  34. data/spec/ratis/pattern_spec.rb +2 -10
  35. data/spec/ratis/plantrip_spec.rb +19 -18
  36. data/spec/ratis/point_2_point_spec.rb +3 -11
  37. data/spec/ratis/request_spec.rb +1 -20
  38. data/spec/ratis/route_pattern_spec.rb +2 -14
  39. data/spec/ratis/route_spec.rb +1 -10
  40. data/spec/ratis/route_stops_spec.rb +1 -10
  41. data/spec/ratis/routes_spec.rb +1 -9
  42. data/spec/ratis/schedule_nearby_spec.rb +1 -11
  43. data/spec/ratis/timetable_spec.rb +24 -44
  44. data/spec/ratis/walkstop_spec.rb +22 -47
  45. data/spec/spec_helper.rb +4 -3
  46. data/spec/support/vcr_cassettes/Nextbus2_running_LATE.yml +141 -1
  47. data/spec/support/vcr_cassettes/Nextbus_running_LATE.yml +2 -2
  48. data/spec/support/vcr_cassettes/Point2Point.yml +2 -2
  49. data/spec/support/vcr_cassettes/Ratis_Area/_all/only_makes_one_request.yml +19 -9
  50. data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/only_makes_one_request.yml +9 -9
  51. data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/parses_out_the_stop_fields_correctly.yml +9 -9
  52. data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/returns_multiple_locations.yml +9 -9
  53. data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/should_return_a_collection_of_Ratis_Stop_s_.yml +9 -9
  54. data/spec/support/vcr_cassettes/Ratis_FleetLocation/_current/only_makes_one_request.yml +661 -563
  55. data/spec/support/vcr_cassettes/Ratis_FleetLocation/_current/parses_out_the_vehicle_fields_correctly.yml +661 -584
  56. data/spec/support/vcr_cassettes/Ratis_FleetLocation/_current/returns_multiple_vehicles.yml +661 -575
  57. data/spec/support/vcr_cassettes/Ratis_FleetLocation/_current/should_return_a_collection_of_Ratis_Vehicle_s_.yml +661 -575
  58. data/spec/support/vcr_cassettes/Ratis_Landmark/_where/only_makes_one_request.yml +67 -1444
  59. data/spec/support/vcr_cassettes/Ratis_Landmark/_where/parses_out_the_landmark_fields_correctly.yml +67 -1444
  60. data/spec/support/vcr_cassettes/Ratis_Landmark/_where/returns_multiple_landmarks.yml +67 -1444
  61. data/spec/support/vcr_cassettes/Ratis_Landmark/_where/should_return_a_collection_of_Ratis_Landmark_s_.yml +67 -1444
  62. data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_all/only_makes_one_request.yml +9 -9
  63. data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_all/should_return_a_collection_of_Ratis_LandmarkCategory_s_.yml +9 -9
  64. data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_all/should_return_all_landmark_categories.yml +9 -9
  65. data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_web_categories/does_something.yml +9 -9
  66. data/spec/support/vcr_cassettes/Ratis_Location/_where/only_makes_one_request.yml +11 -11
  67. data/spec/support/vcr_cassettes/Ratis_Location/_where/parses_out_fields_correctly.yml +11 -11
  68. data/spec/support/vcr_cassettes/Ratis_Location/_where/should_return_a_collection_of_Ratis_Location_s_.yml +11 -11
  69. data/spec/support/vcr_cassettes/Ratis_LocationTypeAhead/_where/only_makes_one_request.yml +10 -10
  70. data/spec/support/vcr_cassettes/Ratis_LocationTypeAhead/_where/parses_out_fields_correctly.yml +10 -10
  71. data/spec/support/vcr_cassettes/Ratis_LocationTypeAhead/_where/should_return_a_collection_of_Ratis_LocationTypeAheadItem_s_.yml +10 -10
  72. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/only_makes_one_request.yml +29 -28
  73. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/returns_the_next_4_bus_times.yml +29 -28
  74. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/should_map_all_the_services_to_service_openstruct_objects.yml +29 -28
  75. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/should_raise_error_if_datetime_condition_is_not_a_DateTime_or_Time.yml +62 -80
  76. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/only_makes_one_request.yml +18 -17
  77. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/returns_the_next_bus_times.yml +18 -17
  78. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/should_raise_error_if_datetime_condition_is_not_a_DateTime_or_Time.yml +52 -52
  79. data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/should_set_all_the_service_values_to_instance_vars.yml +18 -17
  80. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/runs/should_set_the_run_values_to_instance_vars.yml +125 -0
  81. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/single_next_bus/only_makes_one_request.yml +125 -0
  82. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/single_next_bus/requests_the_correct_SOAP_action.yml +125 -0
  83. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/stops/should_set_the_stop_values_to_instance_vars.yml +125 -0
  84. data/spec/support/vcr_cassettes/Ratis_Pattern/_all/only_makes_one_request.yml +12 -12
  85. data/spec/support/vcr_cassettes/Ratis_Pattern/_all/should_parse_the_route_info_fields.yml +12 -12
  86. data/spec/support/vcr_cassettes/Ratis_Pattern/_all/should_return_a_collection_Pattern_RouteInfo_s_.yml +12 -12
  87. data/spec/support/vcr_cassettes/Ratis_Pattern/_all/should_return_no_data_error_when_date_is_in_the_past.yml +5 -5
  88. data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/creates_Ratis_Itineraries_for_each_trip_itinerary.yml +30 -30
  89. data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/only_makes_one_request.yml +30 -30
  90. data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/returns_a_Plantrip_object.yml +30 -30
  91. data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/should_set_all_the_Plantrip_values_to_instance_vars.yml +30 -30
  92. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/gets_the_groups.yml +68 -74
  93. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/gets_the_trips_within_each_group.yml +68 -74
  94. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/only_makes_one_request.yml +68 -74
  95. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_off_stop_fields.yml +68 -74
  96. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_on_stop_fields.yml +68 -74
  97. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_service.yml +68 -74
  98. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_trip.yml +68 -74
  99. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/should_only_return_result_groups_for_filtered_route.yml +15 -17
  100. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/should_only_return_result_groups_for_filtered_routes.yml +19 -21
  101. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/should_raise_error_if_the_trip_is_NOT_possible_for_a_route_being_attempted_to_filter_on.yml +5 -5
  102. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/only_makes_one_request.yml +29 -29
  103. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/parses_out_service_fields.yml +29 -29
  104. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/returns_a_routes_only_response_for_each_matched_service.yml +29 -29
  105. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/returns_all_matching_services_that_fit_the_origin/destination_for_a_given_time_frame.yml +29 -29
  106. data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/should_NOT_filter_by_passed_in_routes.yml +29 -29
  107. data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/only_makes_one_request.yml +133 -70
  108. data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/should_parse_the_stop_fields.yml +133 -70
  109. data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/should_return_a_collection_Ratis_RoutePattern_Point_s_.yml +132 -69
  110. data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/should_return_a_collection_Ratis_RoutePattern_Stop_s_.yml +133 -70
  111. data/spec/support/vcr_cassettes/Ratis_RouteStops/_all/only_makes_one_request.yml +50 -50
  112. data/spec/support/vcr_cassettes/Ratis_RouteStops/_all/parses_out_the_stop_fields_correctly.yml +50 -50
  113. data/spec/support/vcr_cassettes/Ratis_RouteStops/_all/should_return_a_collection_of_Ratis_RouteStops_Stop_s_.yml +50 -50
  114. data/spec/support/vcr_cassettes/Ratis_Routes/_all/only_makes_one_request.yml +346 -370
  115. data/spec/support/vcr_cassettes/Ratis_Routes/_all/returns_all_routes.yml +346 -370
  116. data/spec/support/vcr_cassettes/Ratis_Routes/_all/should_set_directions_and_short_name_to_variables.yml +346 -370
  117. data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/only_makes_one_request.yml +42 -41
  118. data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/returns_a_non_nil_ScheduleNearby.yml +42 -41
  119. data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/returns_a_single_service_at_the_stop.yml +42 -41
  120. data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/returns_all_the_stops.yml +42 -41
  121. data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/should_return_no_data_error_when_date_is_in_the_past.yml +5 -5
  122. data/spec/support/vcr_cassettes/Ratis_Timetable/_where/ATIS_call/should_not_throw_a_500.yml +719 -0
  123. data/spec/support/vcr_cassettes/Ratis_Timetable/_where/only_makes_one_request.yml +315 -315
  124. data/spec/support/vcr_cassettes/Ratis_Timetable/_where/should_parse_the_timetable/stop/trip_fields.yml +315 -315
  125. data/spec/support/vcr_cassettes/Ratis_Timetable/_where/should_return_a_collection_Timetable_Stop_s_.yml +315 -315
  126. data/spec/support/vcr_cassettes/Ratis_Walkstop/_where/only_makes_one_request.yml +9 -9
  127. data/spec/support/vcr_cassettes/Ratis_Walkstop/_where/should_set_all_the_walkstop_values_to_instance_vars.yml +9 -9
  128. metadata +9 -9
  129. data/.rvmrc +0 -1
  130. data/spec/support/vcr_cassettes/Ratis_LocationTypeAhead/_where/should_return_a_collection_of_Ratis_Location_s_.yml +0 -54
  131. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/runs/should_set_the_run_values_to_instance_vars.yml +0 -180
  132. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/single_next_bus/only_makes_one_request.yml +0 -180
  133. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/single_next_bus/requests_the_correct_SOAP_action.yml +0 -180
  134. data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/stops/should_set_the_stop_values_to_instance_vars.yml +0 -180
@@ -1,14 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Ratis::RoutePattern do
4
- before do
5
- Ratis.reset
6
- Ratis.configure do |config|
7
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
8
- config.namespace = 'PX_WEB'
9
- end
10
- end
11
-
12
4
  describe '#where', vcr: {} do
13
5
  # :route_short_name => "LTRL", :direction => "E", :date => "01/01/2014", :service_type => 'W', :routeid => "46880"
14
6
  before do
@@ -17,7 +9,7 @@ describe Ratis::RoutePattern do
17
9
  :direction => 'E',
18
10
  :date => @today,
19
11
  :service_type => 'W',
20
- :routeid => '46880'
12
+ :routeid => '144740'
21
13
  }
22
14
  end
23
15
 
@@ -34,7 +26,7 @@ describe Ratis::RoutePattern do
34
26
  options["Direction"].should eq('E')
35
27
  options["Date"].should eq(@today)
36
28
  options["Servicetype"].should eq('W')
37
- options["Routeid"].should eq('46880')
29
+ options["Routeid"].should eq('144740')
38
30
 
39
31
  end.and_return(double('response', :success? => false))
40
32
 
@@ -116,9 +108,5 @@ describe Ratis::RoutePattern do
116
108
  Ratis::RoutePattern.all(conditions)
117
109
  end.to raise_error(ArgumentError, 'You must provide a routeid')
118
110
  end
119
-
120
-
121
111
  end
122
-
123
112
  end
124
-
@@ -1,15 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Ratis::Route do
4
- before do
5
- Ratis.reset
6
- Ratis.configure do |config|
7
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
8
- config.namespace = 'PX_WEB'
9
- end
10
- end
11
-
12
-
13
4
  describe '#initialize' do
14
5
  it "description" do
15
6
  pending
@@ -21,4 +12,4 @@ describe Ratis::Route do
21
12
  pending
22
13
  end
23
14
  end
24
- end
15
+ end
@@ -1,16 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Ratis::RouteStops do
4
- before do
5
- Ratis.reset
6
- Ratis.configure do |config|
7
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
8
- config.namespace = 'PX_WEB'
9
- end
10
- end
11
-
12
- describe '.all', vcr: {} do
13
-
4
+ describe '#all', vcr: {} do
14
5
  before do
15
6
  @today = Time.now.strftime("%m/%d/%Y")
16
7
  @conditions = {:route => '1',
@@ -1,20 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Ratis::Routes do
4
- before do
5
- Ratis.reset
6
- Ratis.configure do |config|
7
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
8
- config.namespace = 'PX_WEB'
9
- end
10
- end
11
-
12
4
  let(:empty_body){ {:allroutes2_response => {:routes => []}} }
13
5
 
14
6
  describe '#all', vcr: {} do
15
7
  it 'returns all routes' do
16
8
  response = Ratis::Routes.all
17
- expect(response).to have(104).items
9
+ expect(response).to have(103).items
18
10
  expect(response.all?{|rte| rte.is_a?(Ratis::Route) }).to be_true
19
11
  end
20
12
 
@@ -1,14 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Ratis::ScheduleNearby do
4
- before do
5
- Ratis.reset
6
- Ratis.configure do |config|
7
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
8
- config.namespace = 'PX_WEB'
9
- end
10
- end
11
-
12
4
  describe '#where', vcr: {} do
13
5
  before do
14
6
  @today = Time.now.strftime("%m/%d/%Y")
@@ -19,8 +11,7 @@ describe Ratis::ScheduleNearby do
19
11
  :window => '60',
20
12
  :walk_distance => '0.18',
21
13
  :landmark_id => '0',
22
- :stop_id => nil,
23
- :app_id => 'na' }
14
+ :stop_id => nil }
24
15
  end
25
16
 
26
17
  it 'only makes one request' do
@@ -47,7 +38,6 @@ describe Ratis::ScheduleNearby do
47
38
  options["Walkdist"].should eq(@conditions[:walk_distance])
48
39
  options["Landmarkid"].should eq(@conditions[:landmark_id])
49
40
  options["Stopid"].should eq('')
50
- options["Appid"].should eq(@conditions[:app_id])
51
41
 
52
42
  end.and_return(double('response', :success? => false))
53
43
 
@@ -1,28 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Ratis::Timetable do
4
- before do
5
- Ratis.reset
6
- Ratis.configure do |config|
7
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
8
- config.namespace = 'PX_WEB'
9
- end
10
- end
11
-
12
4
  describe '#where', vcr: {} do
13
-
14
- before do
15
- @today = Time.now.strftime("%m/%d/%Y")
16
- @conditions = {:route_short_name => 'ZERO',
17
- :direction => 'N',
18
- :service_type => 'W',
19
- :date => @today}
20
- end
5
+ let(:date) { Chronic.parse('tomorrow at 8am').strftime('%m/%d/%y') }
6
+ let(:options) { { :service_type=>"W", :route_short_name=>"ZERO", :direction=>"N", date: date } }
21
7
 
22
8
  it 'only makes one request' do
23
9
  # false just to stop further processing of response
24
10
  Ratis::Request.should_receive(:get).once.and_call_original
25
- Ratis::Timetable.where(@conditions.dup)
11
+ Ratis::Timetable.where(options.dup)
26
12
  end
27
13
 
28
14
  it 'requests the correct SOAP action with correct args' do
@@ -30,26 +16,23 @@ describe Ratis::Timetable do
30
16
  action.should eq('Timetable')
31
17
  options["Route"].should eq('ZERO')
32
18
  options["Direction"].should eq('N')
33
- options["Date"].should eq(@today)
19
+ options["Date"].should eq(date)
34
20
  options["Servicetype"].should be_nil
35
21
 
36
22
  end.and_return(double('response', :success? => false))
37
23
 
38
- Ratis::Timetable.where(@conditions.dup)
24
+ Ratis::Timetable.where(options.dup)
39
25
  end
40
26
 
41
27
  it 'should return a collection Timetable::Stop(s)' do
42
-
43
- timetable = Ratis::Timetable.where(@conditions.dup)
28
+ timetable = Ratis::Timetable.where(options.dup)
44
29
  timetable.timepoints.each do |obj|
45
30
  expect(obj).to be_a(Ratis::Timetable::Stop)
46
31
  end
47
-
48
32
  end
49
33
 
50
34
  it 'should return a collection Timetable::Stop(s)' do
51
-
52
- timetable = Ratis::Timetable.where(@conditions.dup)
35
+ timetable = Ratis::Timetable.where(options.dup)
53
36
  timetable.trips.each do |obj|
54
37
  expect(obj).to be_a(Ratis::Timetable::Trip)
55
38
  end
@@ -57,20 +40,20 @@ describe Ratis::Timetable do
57
40
  end
58
41
 
59
42
  it "should parse the timetable/stop/trip fields" do
60
- timetable = Ratis::Timetable.where(@conditions.dup)
43
+ timetable = Ratis::Timetable.where(options.dup)
61
44
 
62
45
  expect(timetable.route_short_name).to eq('ZERO')
63
46
  expect(timetable.direction).to eq('N')
64
47
  expect(timetable.service_type).to eq('Weekday')
65
48
  expect(timetable.operator).to eq('AP')
66
- expect(timetable.effective).to eq('10/28/13')
49
+ expect(timetable.effective).to eq('04/28/14')
67
50
 
68
51
  stop = timetable.timepoints.first
69
52
 
70
53
  expect(stop.ratis_stop_id).to eq(0)
71
54
  expect(stop.atis_stop_id).to eq('3317')
72
55
  expect(stop.stop_id).to eq('10050')
73
- expect(stop.description).to eq('CENTRAL AVE & DOBBINS RD')
56
+ expect(stop.description).to eq('CENTRAL AVE & DOBBINS RD')
74
57
  expect(stop.area).to eq('Phoenix')
75
58
 
76
59
  trip = timetable.trips.first
@@ -82,47 +65,44 @@ describe Ratis::Timetable do
82
65
  end
83
66
 
84
67
  it "should raise error for missing arg route_short_name" do
85
- conditions = @conditions.dup
68
+ conditions = options.dup
86
69
  conditions.delete(:route_short_name)
87
-
88
70
  expect do
89
71
  Ratis::Timetable.where(conditions)
90
72
  end.to raise_error(ArgumentError, 'You must provide a route_short_name')
91
73
  end
92
74
 
93
75
  it "should raise error for missing arg direction" do
94
- conditions = @conditions.dup
76
+ conditions = options.dup
95
77
  conditions.delete(:direction)
96
-
97
78
  expect do
98
79
  Ratis::Timetable.where(conditions)
99
80
  end.to raise_error(ArgumentError, 'You must provide a direction')
100
81
  end
101
82
 
102
83
  it "should raise error for missing arg date" do
103
- conditions = @conditions.dup
84
+ conditions = options.dup
104
85
  conditions.delete(:date)
105
86
  conditions.delete(:service_type)
106
-
107
87
  expect do
108
88
  Ratis::Timetable.where(conditions)
109
89
  end.to raise_error(ArgumentError, 'You must provide either date or service_type')
110
90
  end
111
91
 
112
92
  describe 'ATIS call' do
113
- it "should not throw a 500" do
114
- # This test was added because while our test suite was passing 2/18/14 the real API was throwing 500s and we want to know about things like that. CI
115
- @today = Time.now.strftime("%m/%d/%Y")
116
- @conditions = {:route_short_name => 'ZERO',
117
- :direction => 'N',
118
- :service_type => 'W',
119
- :date => @today}
120
- expect {
121
- Ratis::Timetable.where(@conditions.dup)
122
- }.to_not raise_exception(Ratis::Errors::SoapError)
93
+ it "should not throw a 500" do
94
+ # This test was added because while our test suite was passing 2/18/14 the real API was throwing 500s and we want to know about things like that. CI
95
+ expect {
96
+ Ratis::Timetable.where({
97
+ :route_short_name => 'ZERO',
98
+ :direction => 'N',
99
+ :service_type => 'W',
100
+ :date => Time.now.strftime("%m/%d/%Y")
101
+ })
102
+ }.to_not raise_error
103
+ end
123
104
  end
124
105
  end
125
- end
126
106
 
127
107
  end
128
108
 
@@ -1,48 +1,37 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Ratis::Walkstop do
4
- before do
5
- Ratis.reset
6
- Ratis.configure do |config|
7
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
8
- config.namespace = 'PX_WEB'
9
- end
10
- end
11
-
12
- let(:empty_body){ {:walkstop_response => {} } }
4
+ let(:empty_body) { { :walkstop_response => {} } }
5
+ let(:conditions) {
6
+ {
7
+ :start_lat => '33.511990',
8
+ :start_long => '-111.880344',
9
+ :end_lat => '33.512091',
10
+ :end_long => '-111.880349'
11
+ }
12
+ }
13
13
 
14
14
  describe '#where', vcr: {} do
15
-
16
- before do
17
- @conditions = {:start_lat => '33.511990',
18
- :start_long => '-111.880344',
19
- :end_lat => '33.512091',
20
- :end_long => '-111.880349',
21
- :app_id => 'na' }
22
- end
23
-
24
15
  it 'only makes one request' do
25
16
  # false just to stop further processing of response
26
17
  Ratis::Request.should_receive(:get).once.and_call_original
27
- Ratis::Walkstop.where(@conditions.dup)
18
+ Ratis::Walkstop.where(conditions.dup)
28
19
  end
29
20
 
30
21
  it 'requests the correct SOAP action' do
31
22
  Ratis::Request.should_receive(:get) do |action, options|
32
23
  action.should eq('Walkstop')
33
- options["Startlat"].should eq(@conditions[:start_lat])
34
- options["Startlong"].should eq(@conditions[:start_long])
35
- options["Endlat"].should eq(@conditions[:end_lat])
36
- options["Endlong"].should eq(@conditions[:end_long])
37
- options["Appid"].should eq(@conditions[:app_id])
38
-
24
+ options["Startlat"].should eq(conditions[:start_lat])
25
+ options["Startlong"].should eq(conditions[:start_long])
26
+ options["Endlat"].should eq(conditions[:end_lat])
27
+ options["Endlong"].should eq(conditions[:end_long])
39
28
  end.and_return(double('response', :success? => false))
40
29
 
41
- Ratis::Walkstop.where(@conditions.dup)
30
+ Ratis::Walkstop.where(conditions.dup)
42
31
  end
43
32
 
44
33
  it 'should set all the walkstop values to instance vars' do
45
- walkstop = Ratis::Walkstop.where(@conditions.dup)
34
+ walkstop = Ratis::Walkstop.where(conditions.dup)
46
35
 
47
36
  expect(walkstop).to be_a(Ratis::Walkstop)
48
37
  expect(walkstop.legs).to be_a(Array)
@@ -58,37 +47,23 @@ describe Ratis::Walkstop do
58
47
  it "should return an empty array if the api request isn't successful" do
59
48
  Ratis::Request.should_receive(:get) do |action, options|
60
49
  action.should eq('Walkstop')
61
- options["Startlat"].should eq(@conditions[:start_lat])
62
- options["Startlong"].should eq(@conditions[:start_long])
63
- options["Endlat"].should eq(@conditions[:end_lat])
64
- options["Endlong"].should eq(@conditions[:end_long])
65
- options["Appid"].should eq(@conditions[:app_id])
50
+ options["Startlat"].should eq(conditions[:start_lat])
51
+ options["Startlong"].should eq(conditions[:start_long])
52
+ options["Endlat"].should eq(conditions[:end_lat])
53
+ options["Endlong"].should eq(conditions[:end_long])
66
54
 
67
55
  end.and_return(double('response', :success? => false, :body => empty_body)) # false only to stop further running
68
56
 
69
- expect(Ratis::Walkstop.where(@conditions.dup).legs).to be_empty
57
+ expect(Ratis::Walkstop.where(conditions.dup).legs).to be_empty
70
58
  end
71
-
72
59
  end
73
60
 
74
61
  describe '#to_hash' do
75
- before do
76
- @conditions = {:start_lat => '33.511990',
77
- :start_long => '-111.880344',
78
- :end_lat => '33.512091',
79
- :end_long => '-111.880349',
80
- :app_id => 'na' }
81
- end
82
-
83
62
  it 'returns only the correct keys' do
84
- walkstop = Ratis::Walkstop.where(@conditions.dup)
63
+ walkstop = Ratis::Walkstop.where(conditions.dup)
85
64
  hash = {:legs=>["Walk a short distance N on Scottsdale Community College."], :walk_distance=>"0.05", :walk_units=>"miles", :walk_time=>"2"}
86
65
  expect( HashDiff.diff(walkstop.to_hash, hash) ).to eql([])
87
66
  end
88
-
89
67
  end
90
-
91
-
92
-
93
68
  end
94
69
 
@@ -35,7 +35,8 @@ Savon.configure do |config|
35
35
  end
36
36
 
37
37
  Ratis.configure do |config|
38
- config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
38
+ config.appid = 'ratis-specs'
39
+ config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-271/soap.cgi'
39
40
  config.namespace = 'PX_WEB'
40
41
  config.timeout = 5
41
42
  end
@@ -48,6 +49,6 @@ VCR.configure do |c|
48
49
  c.ignore_localhost = true
49
50
  c.cassette_library_dir = "spec/support/vcr_cassettes"
50
51
  c.allow_http_connections_when_no_cassette = true
51
- c.default_cassette_options = { allow_playback_repeats: true, match_requests_on: [:method, :uri, :headers] }
52
+ c.default_cassette_options = { record: :new_episodes, allow_playback_repeats: true, match_requests_on: [:method, :uri, :headers] }
52
53
  # c.debug_logger = File.open(Rails.root.join('log/vcr.log'), 'w')
53
- end
54
+ end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi
5
+ uri: http://soap.valleymetro.org/cgi-bin-soap-web-271/soap.cgi
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@@ -147,4 +147,144 @@ http_interactions:
147
147
  affiliates. All rights reserved.</Copyright>\n\t<Soapversion>2.6.3 - 11/14/13</Soapversion>\n</namesp1:Nextbus2Response></SOAP-ENV:Body></SOAP-ENV:Envelope>"
148
148
  http_version:
149
149
  recorded_at: Wed, 01 Jan 2014 19:52:05 GMT
150
+ - request:
151
+ method: post
152
+ uri: http://soap.valleymetro.org/cgi-bin-soap-web-271/soap.cgi
153
+ body:
154
+ encoding: UTF-8
155
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
156
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="PX_WEB"
157
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><Nextbus2
158
+ xmlns="PX_WEB"><Stopid>10040</Stopid></Nextbus2></env:Body></env:Envelope>
159
+ headers:
160
+ Soapaction:
161
+ - '"PX_WEB#Nextbus2"'
162
+ Content-Type:
163
+ - text/xml;charset=UTF-8
164
+ Content-Length:
165
+ - '319'
166
+ Accept-Encoding:
167
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
168
+ Accept:
169
+ - '*/*'
170
+ User-Agent:
171
+ - Ruby
172
+ response:
173
+ status:
174
+ code: 200
175
+ message: OK
176
+ headers:
177
+ Date:
178
+ - Fri, 13 Jun 2014 23:58:46 GMT
179
+ Server:
180
+ - Apache/2.2.3 (CentOS)
181
+ Soapserver:
182
+ - SOAP::Lite/Perl/0.55
183
+ Content-Length:
184
+ - '15689'
185
+ Connection:
186
+ - close
187
+ Content-Type:
188
+ - text/xml; charset=utf-8
189
+ body:
190
+ encoding: UTF-8
191
+ string: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><SOAP-ENV:Envelope xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\"
192
+ xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"
193
+ xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><SOAP-ENV:Body><namesp1:Nextbus2Response
194
+ xmlns:namesp1=\"PX_WEB\">\n\t<Responsecode>0</Responsecode>\n\t<Version>1.6</Version>\n\t<Input>\n\t\t<Stopid>10040</Stopid>\n\t\t<Atisstopid>0</Atisstopid>\n\t\t<Landmarkid>0</Landmarkid>\n\t\t<Route></Route>\n\t\t<Runs>999</Runs>\n\t\t<Xmode>BCXTFRSLK123</Xmode>\n\t\t<Date>06/13/14</Date>\n\t\t<Time>04:58
195
+ PM</Time>\n\t</Input>\n\t<Stop>\n\t\t<Description>VAN BUREN ST &amp; 16TH
196
+ ST</Description>\n\t\t<Area>Phoenix</Area>\n\t\t<Atisstopid>6124</Atisstopid>\n\t\t<Stopid>10040</Stopid>\n\t\t<Lat>33.451493</Lat>\n\t\t<Long>-112.048207</Long>\n\t\t<Stopposition>Y</Stopposition>\n\t\t<Heading>WB</Heading>\n\t\t<Side>Far</Side>\n\t\t<Stopstatustype>N</Stopstatustype>\n\t</Stop>\n\t<Stops>\n\t\t<Stop>\n\t\t\t<Description>VAN
197
+ BUREN ST &amp; 16TH ST</Description>\n\t\t\t<Area>Phoenix</Area>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t\t<Lat>33.451493</Lat>\n\t\t\t<Long>-112.048207</Long>\n\t\t\t<Stopposition>Y</Stopposition>\n\t\t\t<Heading>WB</Heading>\n\t\t\t<Side>Far</Side>\n\t\t\t<Stopstatustype>N</Stopstatustype>\n\t\t</Stop>\n\t</Stops>\n\t<Runs>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
198
+ VAN BUREN West to Avondale</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>05:06
199
+ PM</Triptime>\n\t\t\t<Tripid>15763-4</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>-8</Adherence>\n\t\t\t<Estimatedtime>05:14
200
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>Y</Valid>\n\t\t\t\t<Adherence>-8</Adherence>\n\t\t\t\t<Estimatedtime>05:14
201
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes>16</Estimatedminutes>\n\t\t\t\t<Polltime>04:57
202
+ PM</Polltime>\n\t\t\t\t<Trend>S</Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>Y</Reliable>\n\t\t\t\t<Stopped>N</Stopped>\n\t\t\t\t<Vehicleid>6150</Vehicleid>\n\t\t\t\t<Lat>33.447392</Lat>\n\t\t\t\t<Long>-111.977692</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2016</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
203
+ VAN BUREN West to 51st Ave.</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>05:21
204
+ PM</Triptime>\n\t\t\t<Tripid>15765-9</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>05:21
205
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>05:21
206
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes>23</Estimatedminutes>\n\t\t\t\t<Polltime>04:58
207
+ PM</Polltime>\n\t\t\t\t<Trend>S</Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>N</Stopped>\n\t\t\t\t<Vehicleid>6529</Vehicleid>\n\t\t\t\t<Lat>33.450996</Lat>\n\t\t\t\t<Long>-111.970863</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2015</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
208
+ VAN BUREN West to Avondale</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>05:36
209
+ PM</Triptime>\n\t\t\t<Tripid>15761-6</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>05:36
210
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>05:36
211
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
212
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
213
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2014</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
214
+ VAN BUREN West to 51st Ave.</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>05:51
215
+ PM</Triptime>\n\t\t\t<Tripid>15765-9</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>05:51
216
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>05:51
217
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
218
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
219
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2003</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
220
+ VAN BUREN West to Avondale</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>06:06
221
+ PM</Triptime>\n\t\t\t<Tripid>15763-5</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>06:06
222
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>06:06
223
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
224
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
225
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2017</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
226
+ VAN BUREN West to 51st Ave.</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>06:21
227
+ PM</Triptime>\n\t\t\t<Tripid>15765-10</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>06:21
228
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>06:21
229
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
230
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
231
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2009</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
232
+ VAN BUREN West to Avondale</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>06:36
233
+ PM</Triptime>\n\t\t\t<Tripid>15761-6</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>06:36
234
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>06:36
235
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
236
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
237
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2008</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
238
+ VAN BUREN West to 51st Ave.</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>06:51
239
+ PM</Triptime>\n\t\t\t<Tripid>15765-10</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>06:51
240
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>06:51
241
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
242
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
243
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2005</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
244
+ VAN BUREN West to Avondale</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>07:08
245
+ PM</Triptime>\n\t\t\t<Tripid>15763-5</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>07:08
246
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>07:08
247
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
248
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
249
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2012</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
250
+ VAN BUREN West to 51st Ave.</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>07:23
251
+ PM</Triptime>\n\t\t\t<Tripid>15765-11</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>07:23
252
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>07:23
253
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
254
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
255
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2013</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
256
+ VAN BUREN West to Avondale</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>07:53
257
+ PM</Triptime>\n\t\t\t<Tripid>15761-7</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>07:53
258
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>07:53
259
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
260
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
261
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2015</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
262
+ VAN BUREN West to 51st Ave.</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>08:23
263
+ PM</Triptime>\n\t\t\t<Tripid>15756-0</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>08:23
264
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>08:23
265
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
266
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
267
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2006</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
268
+ Van Buren To 75th Avenue</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>08:53
269
+ PM</Triptime>\n\t\t\t<Tripid>15757-0</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>08:53
270
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>08:53
271
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
272
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
273
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2009</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
274
+ VAN BUREN West to 51st Ave.</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>09:23
275
+ PM</Triptime>\n\t\t\t<Tripid>15758-0</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>09:23
276
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>09:23
277
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
278
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
279
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2014</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t\t<Run>\n\t\t\t<Route>3</Route>\n\t\t\t<Publicroute>3</Publicroute>\n\t\t\t<Sign>3
280
+ Van Buren To 75th Avenue</Sign>\n\t\t\t<Operator>FT</Operator>\n\t\t\t<Publicoperator>FT</Publicoperator>\n\t\t\t<Direction>W</Direction>\n\t\t\t<Status>N</Status>\n\t\t\t<Servicetype>W</Servicetype>\n\t\t\t<Routetype>B</Routetype>\n\t\t\t<Triptime>09:53
281
+ PM</Triptime>\n\t\t\t<Tripid>15757-0</Tripid>\n\t\t\t<Skedtripid> </Skedtripid>\n\t\t\t<Adherence>0</Adherence>\n\t\t\t<Estimatedtime>09:53
282
+ PM</Estimatedtime>\n\t\t\t<Realtime>\n\t\t\t\t<Valid>N</Valid>\n\t\t\t\t<Adherence>0</Adherence>\n\t\t\t\t<Estimatedtime>09:53
283
+ PM</Estimatedtime>\n\t\t\t\t<Estimatedminutes> </Estimatedminutes>\n\t\t\t\t<Polltime></Polltime>\n\t\t\t\t<Trend>
284
+ </Trend>\n\t\t\t\t<Speed>0.00</Speed>\n\t\t\t\t<Reliable>N</Reliable>\n\t\t\t\t<Stopped>
285
+ </Stopped>\n\t\t\t\t<Vehicleid></Vehicleid>\n\t\t\t\t<Lat>0.000000</Lat>\n\t\t\t\t<Long>0.000000</Long>\n\t\t\t</Realtime>\n\t\t\t<Block>2013</Block>\n\t\t\t<Exception>N</Exception>\n\t\t\t<Atisstopid>6124</Atisstopid>\n\t\t\t<Stopid>10040</Stopid>\n\t\t</Run>\n\t</Runs>\n\t<Statusinfo></Statusinfo>\n\t<Appid></Appid>\n\t<Requestor>72.222.151.25</Requestor>\n\t<Host>s-rpta-soap</Host>\n\t<Copyright>XML
286
+ schema Copyright (c) 2003-2014 Trapeze Software ULC, its subsidiaries and
287
+ affiliates. All rights reserved.</Copyright>\n\t<Soapversion>2.7.1a - 05/14/14</Soapversion>\n</namesp1:Nextbus2Response></SOAP-ENV:Body></SOAP-ENV:Envelope>"
288
+ http_version:
289
+ recorded_at: Fri, 13 Jun 2014 23:58:47 GMT
150
290
  recorded_with: VCR 2.8.0