ratis 3.4.3 → 3.5.0

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.
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