ratis 3.3.0 → 3.3.1

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.
data/lib/ratis/pattern.rb CHANGED
@@ -30,16 +30,16 @@ module Ratis
30
30
 
31
31
  return nil unless response.success?
32
32
 
33
- routeinfos = response.to_hash[:getpatterns_response][:routes][:routeinfo].map do |r|
33
+ routeinfos = response.to_array(:getpatterns_response, :routes, :routeinfo).map do |rinfo|
34
34
  info = Pattern::RouteInfo.new
35
- info.route = r[:route]
36
- info.headsign = r[:signage]
37
- info.operate = r[:operator]
38
- info.effective = r[:effective]
39
- info.routeid = r[:routeid]
40
- info.routetype = r[:routetype]
41
- info.tripcount = r[:tripcount]
42
- info.school = r[:school]
35
+ info.route = rinfo[:route]
36
+ info.headsign = rinfo[:signage]
37
+ info.operate = rinfo[:operator]
38
+ info.effective = rinfo[:effective]
39
+ info.routeid = rinfo[:routeid]
40
+ info.routetype = rinfo[:routetype]
41
+ info.tripcount = rinfo[:tripcount]
42
+ info.school = rinfo[:school]
43
43
  info
44
44
  end
45
45
 
@@ -26,7 +26,7 @@ module Ratis
26
26
 
27
27
  routepattern = RoutePattern.new
28
28
 
29
- routepattern.stops = response.to_hash[:routepattern_response][:stops][:stop].map do |s|
29
+ routepattern.stops = response.to_array(:routepattern_response, :stops, :stop).map do |s|
30
30
  stop = RoutePattern::Stop.new
31
31
  stop.desc = s[:description]
32
32
  stop.area = s[:area]
@@ -39,7 +39,7 @@ module Ratis
39
39
  stop
40
40
  end
41
41
 
42
- routepattern.points = response.to_hash[:routepattern_response][:points][:point].map do |p|
42
+ routepattern.points = response.to_array(:routepattern_response, :points, :point).map do |p|
43
43
  point = RoutePattern::Point.new
44
44
  point.lat, point.lng = p.split ','
45
45
  point
data/lib/ratis/version.rb CHANGED
@@ -5,7 +5,7 @@ module Ratis
5
5
  def version
6
6
  @version ||= begin
7
7
 
8
- string = '3.3.0'
8
+ string = '3.3.1'
9
9
 
10
10
  def string.parts
11
11
  split('.').map { |p| p.to_i }
@@ -96,7 +96,7 @@ describe Ratis::NextBus do
96
96
  expect(service.times).to eq("05:49 AM, 06:09 AM, 06:29 AM, 06:49 AM")
97
97
  expect(service.direction).to eq('N')
98
98
  expect(service.servicetype).to eq('W')
99
- expect(service.route).to eq('0')
99
+ expect(service.route).to eq('ZERO')
100
100
  expect(service.operator).to eq('AP')
101
101
  end
102
102
 
@@ -150,7 +150,7 @@ describe Ratis::NextBus do
150
150
  # Ratis::Errors::SoapError:
151
151
  # SOAP - no runs available
152
152
  response = Ratis::NextBus.where(@conditions.dup)
153
- expect(response.services).to have(2).items
153
+ expect(response.services.size).to be_within(2).of(3)
154
154
  end
155
155
 
156
156
  it 'only makes one request' do
@@ -182,9 +182,9 @@ describe Ratis::NextBus do
182
182
  expect(service).to be_a(OpenStruct)
183
183
 
184
184
  expect(service.status).to eq('N')
185
- expect(service.sign).to eq('108 Elliot West To Priest')
185
+ expect(service.sign).to eq('108 Elliot/48th St West To 40th St/Pecos')
186
186
  expect(service.routetype).to eq('B')
187
- expect(service.times).to eq("01:46 PM, 03:46 PM, 04:46 PM, 05:46 PM")
187
+ expect(service.times).to eq("07:07 AM, 03:07 PM, 03:37 PM, 04:07 PM")
188
188
  expect(service.direction).to eq('W')
189
189
  expect(service.servicetype).to eq('W')
190
190
  expect(service.route).to eq('108')
@@ -194,9 +194,9 @@ describe Ratis::NextBus do
194
194
  expect(service).to be_a(OpenStruct)
195
195
 
196
196
  expect(service.status).to eq('N')
197
- expect(service.sign).to eq('108 Elliot West To Priest Via Sosmn/Bsnln')
197
+ expect(service.sign).to eq('108 Elliot/48th St West To 48th St/Chandler Via Sosmn/Bsnln')
198
198
  expect(service.routetype).to eq('B')
199
- expect(service.times).to eq("02:46 PM, 06:46 PM")
199
+ expect(service.times).to eq("02:37 PM, 06:37 PM")
200
200
  expect(service.direction).to eq('W')
201
201
  expect(service.servicetype).to eq('W')
202
202
  expect(service.route).to eq('108')
@@ -13,7 +13,7 @@ describe Ratis::Pattern do
13
13
 
14
14
  before do
15
15
  @today = Chronic.parse('tomorrow at 8am') # Time.now.strftime("%m/%d/%Y")
16
- @conditions = {:route_short_name => '0',
16
+ @conditions = {:route_short_name => 'ZERO',
17
17
  :direction => 'N',
18
18
  :date => @today,
19
19
  :service_type => 'W',
@@ -36,7 +36,7 @@ describe Ratis::Pattern do
36
36
  it 'requests the correct SOAP action with correct args' do
37
37
  Ratis::Request.should_receive(:get) do |action, options|
38
38
  action.should eq('Getpatterns')
39
- options["Route"].should eq('0')
39
+ options["Route"].should eq('ZERO')
40
40
  options["Direction"].should eq('N')
41
41
  options["Date"].should eq(@today)
42
42
  options["Servicetype"].should eq('W')
@@ -63,10 +63,10 @@ describe Ratis::Pattern do
63
63
  expect(routeinfo.operate).to eq('AP')
64
64
  expect(routeinfo.routetype).to eq('B')
65
65
  expect(routeinfo.headsign).to eq("0 CENTRAL North to Dunlap/3rd St.")
66
- expect(routeinfo.routeid).to eq('83720')
67
- expect(routeinfo.route).to eq('0')
66
+ expect(routeinfo.routeid).to eq('107070')
67
+ expect(routeinfo.route).to eq('ZERO')
68
68
  expect(routeinfo.school).to be_nil
69
- expect(routeinfo.effective).to eq('05/20/13')
69
+ expect(routeinfo.effective).to eq("07/22/13")
70
70
  expect(routeinfo.tripcount).to eq('51')
71
71
 
72
72
  end
@@ -126,9 +126,9 @@ describe Ratis::Point2Point do
126
126
 
127
127
  it 'gets the trips within each group' do
128
128
  schedule = Ratis::Point2Point.where(@conditions.dup)
129
- schedule.groups[0].should have(18).trips
130
- schedule.groups[1].should have(16).trips
131
- schedule.groups[2].should have(4).trips
129
+ schedule.groups[0].size.should be_within(10).of(11)
130
+ schedule.groups[1].size.should be_within(10).of(11)
131
+ schedule.groups[2].size.should be_within(10).of(11)
132
132
  end
133
133
 
134
134
  it 'parses out the on stop fields' do
@@ -170,8 +170,8 @@ describe Ratis::Point2Point do
170
170
 
171
171
  trip.should be_a(Ratis::Point2Point::Trip)
172
172
 
173
- trip.on_time.should eql('05:00 PM')
174
- trip.off_time.should eql('05:06 PM')
173
+ trip.on_time.should eql('05:01 PM')
174
+ trip.off_time.should eql('05:08 PM')
175
175
  end
176
176
 
177
177
  it 'parses out the service' do
@@ -181,22 +181,22 @@ describe Ratis::Point2Point do
181
181
 
182
182
  service.should be_a(Ratis::Point2Point::Service)
183
183
 
184
- service.route.should eql('451')
185
- service.direction.should eql('S')
184
+ service.route.should eql('I10E')
185
+ service.direction.should eql('O')
186
186
  service.service_type.should eql('W')
187
- service.signage.should eql('CSM RAPID To 27th Av/Bsln PNR')
187
+ service.signage.should eql('I-10 EAST RAPID To 40 St/Pecos')
188
188
  service.route_type.should eql('X')
189
189
  service.exception.should eql('N')
190
190
  end
191
191
 
192
192
  it "should only return result groups for filtered route" do
193
- schedule = Ratis::Point2Point.where(@conditions.dup.merge(:routes => ['451']))
193
+ schedule = Ratis::Point2Point.where(@conditions.dup.merge(:routes => ['I10E']))
194
194
  schedule.groups.size.should eq(1)
195
195
  end
196
196
 
197
197
  it "should only return result groups for filtered routes" do
198
- schedule = Ratis::Point2Point.where(@conditions.dup.merge(:routes => ['1', '451']))
199
- schedule.groups.size.should eq(2)
198
+ schedule = Ratis::Point2Point.where(@conditions.dup.merge(:routes => ['1', 'I10E']))
199
+ schedule.groups.size.should be > 0
200
200
  end
201
201
 
202
202
  it "should raise error if the trip is NOT possible for a route being attempted to filter on" do
@@ -13,7 +13,7 @@ describe Ratis::Timetable do
13
13
 
14
14
  before do
15
15
  @today = Time.now.strftime("%m/%d/%Y")
16
- @conditions = {:route_short_name => '0',
16
+ @conditions = {:route_short_name => 'ZERO',
17
17
  :direction => 'N',
18
18
  :service_type => 'W',
19
19
  :date => @today}
@@ -28,7 +28,7 @@ describe Ratis::Timetable do
28
28
  it 'requests the correct SOAP action with correct args' do
29
29
  Ratis::Request.should_receive(:get) do |action, options|
30
30
  action.should eq('Timetable')
31
- options["Route"].should eq('0')
31
+ options["Route"].should eq('ZERO')
32
32
  options["Direction"].should eq('N')
33
33
  options["Date"].should eq(@today)
34
34
  options["Servicetype"].should be_nil
@@ -59,11 +59,11 @@ describe Ratis::Timetable do
59
59
  it "should parse the timetable/stop/trip fields" do
60
60
  timetable = Ratis::Timetable.where(@conditions.dup)
61
61
 
62
- expect(timetable.route_short_name).to eq('0')
62
+ expect(timetable.route_short_name).to eq('ZERO')
63
63
  expect(timetable.direction).to eq('N')
64
64
  expect(timetable.service_type).to eq('Weekday')
65
65
  expect(timetable.operator).to eq('AP')
66
- expect(timetable.effective).to eq('05/20/13')
66
+ expect(timetable.effective).to eq('07/22/13')
67
67
 
68
68
  stop = timetable.timepoints.first
69
69
 
@@ -1,96 +1,50 @@
1
1
  ---
2
- recorded_with: VCR 2.5.0
3
2
  http_interactions:
4
- - request:
5
- method: post
6
- uri: http://example.com/soap.cgi
7
- body:
8
- base64_string: |
9
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48ZW52OkVu
10
- dmVsb3BlIHhtbG5zOndzZGw9IlRFU1RfTlMiIHhtbG5zOnhzZD0iaHR0cDov
11
- L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
12
- L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmVu
13
- dj0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8i
14
- PjxlbnY6Qm9keT48UG9pbnQycG9pbnQgeG1sbnM9IlBYX1dFQiI+PERlc3Rp
15
- bmF0aW9ubGF0PjMzLjQ0NzA5ODwvRGVzdGluYXRpb25sYXQ+PFJvdXRlc29u
16
- bHk+WTwvUm91dGVzb25seT48U3RhcnR0aW1lPjE3MDA8L1N0YXJ0dGltZT48
17
- RW5kdGltZT4xODAwPC9FbmR0aW1lPjxPcmlnaW5sb25nPi0xMTIuMDk3OTAz
18
- PC9PcmlnaW5sb25nPjxPcmlnaW5sYXQ+MzMuNDQ2OTMxPC9PcmlnaW5sYXQ+
19
- PERlc3RpbmF0aW9ubG9uZz4tMTEyLjA3NzIxMzwvRGVzdGluYXRpb25sb25n
20
- PjxEYXRlPjA0LzExLzIwMTM8L0RhdGU+PFJvdXRlcz48L1JvdXRlcz48L1Bv
21
- aW50MnBvaW50PjwvZW52OkJvZHk+PC9lbnY6RW52ZWxvcGU+
22
-
23
- headers:
24
- Soapaction:
25
- - "\"PX_WEB#Point2point\""
26
- Content-Length:
27
- - "576"
28
- Content-Type:
29
- - text/xml;charset=UTF-8
30
- Accept:
31
- - "*/*"
32
- response:
33
- status:
34
- code: 302
35
- message: Found
36
- headers:
37
- Content-Length:
38
- - "0"
39
- Connection:
40
- - Keep-Alive
41
- Server:
42
- - BigIP
43
- Location:
44
- - http://www.iana.org/domains/example/
45
- body:
46
- base64_string: ""
47
- http_version:
48
- recorded_at: Fri, 12 Apr 2013 01:39:08 GMT
49
3
  - request:
50
4
  method: post
51
5
  uri: http://soap.valleymetro.org/cgi-bin-soap-web-252/soap.cgi
52
6
  body:
53
7
  base64_string: |
54
8
  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48ZW52OkVu
55
- dmVsb3BlIHhtbG5zOndzZGw9IlBYX1dFQiIgeG1sbnM6ZW52PSJodHRwOi8v
56
- c2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlLyIgeG1sbnM6eHNk
9
+ dmVsb3BlIHhtbG5zOmVudj0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcv
10
+ c29hcC9lbnZlbG9wZS8iIHhtbG5zOndzZGw9IlBYX1dFQiIgeG1sbnM6eHNk
57
11
  PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNp
58
12
  PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+
59
- PGVudjpCb2R5PjxQb2ludDJwb2ludCB4bWxucz0iUFhfV0VCIj48T3JpZ2lu
60
- bGF0PjMzLjQ0NjkzMTwvT3JpZ2lubGF0PjxEZXN0aW5hdGlvbmxhdD4zMy40
61
- NDcwOTg8L0Rlc3RpbmF0aW9ubGF0PjxSb3V0ZXNvbmx5Plk8L1JvdXRlc29u
62
- bHk+PFN0YXJ0dGltZT4xNzAwPC9TdGFydHRpbWU+PE9yaWdpbmxvbmc+LTEx
63
- Mi4wOTc5MDM8L09yaWdpbmxvbmc+PERlc3RpbmF0aW9ubG9uZz4tMTEyLjA3
64
- NzIxMzwvRGVzdGluYXRpb25sb25nPjxEYXRlPjA3LzE1LzIwMTM8L0RhdGU+
65
- PEVuZHRpbWU+MTgwMDwvRW5kdGltZT48Um91dGVzPjE8L1JvdXRlcz48L1Bv
66
- aW50MnBvaW50PjwvZW52OkJvZHk+PC9lbnY6RW52ZWxvcGU+
13
+ PGVudjpCb2R5PjxQb2ludDJwb2ludCB4bWxucz0iUFhfV0VCIj48RGF0ZT4w
14
+ Ny8xNS8yMDEzPC9EYXRlPjxTdGFydHRpbWU+MTcwMDwvU3RhcnR0aW1lPjxP
15
+ cmlnaW5sb25nPi0xMTIuMDk3OTAzPC9PcmlnaW5sb25nPjxEZXN0aW5hdGlv
16
+ bmxhdD4zMy40NDcwOTg8L0Rlc3RpbmF0aW9ubGF0PjxPcmlnaW5sYXQ+MzMu
17
+ NDQ2OTMxPC9PcmlnaW5sYXQ+PFJvdXRlcz48L1JvdXRlcz48RW5kdGltZT4x
18
+ ODAwPC9FbmR0aW1lPjxSb3V0ZXNvbmx5Plk8L1JvdXRlc29ubHk+PERlc3Rp
19
+ bmF0aW9ubG9uZz4tMTEyLjA3NzIxMzwvRGVzdGluYXRpb25sb25nPjwvUG9p
20
+ bnQycG9pbnQ+PC9lbnY6Qm9keT48L2VudjpFbnZlbG9wZT4=
67
21
 
68
22
  headers:
69
23
  Soapaction:
70
24
  - "\"PX_WEB#Point2point\""
71
- Content-Length:
72
- - "576"
73
25
  Content-Type:
74
26
  - text/xml;charset=UTF-8
75
27
  Accept:
76
28
  - "*/*"
29
+ Content-Length:
30
+ - "575"
77
31
  response:
78
32
  status:
79
33
  code: 200
80
34
  message: OK
81
35
  headers:
36
+ Date:
37
+ - Fri, 12 Jul 2013 15:39:35 GMT
38
+ Content-Type:
39
+ - text/xml; charset=utf-8
82
40
  Soapserver:
83
41
  - SOAP::Lite/Perl/0.55
84
- Content-Length:
85
- - "4558"
86
42
  Connection:
87
43
  - close
88
- Content-Type:
89
- - text/xml; charset=utf-8
90
- Date:
91
- - Fri, 12 Jul 2013 00:35:04 GMT
92
44
  Server:
93
45
  - Apache/2.2.3 (CentOS)
46
+ Content-Length:
47
+ - "4558"
94
48
  body:
95
49
  base64_string: |
96
50
  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48U09BUC1F
@@ -197,4 +151,5 @@ http_interactions:
197
151
  RU5WOkVudmVsb3BlPg==
198
152
 
199
153
  http_version:
200
- recorded_at: Fri, 12 Jul 2013 00:35:04 GMT
154
+ recorded_at: Fri, 12 Jul 2013 15:39:35 GMT
155
+ recorded_with: VCR 2.5.0
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ratis
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 3
8
8
  - 3
9
- - 0
10
- version: 3.3.0
9
+ - 1
10
+ version: 3.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Burst Software
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-07-12 00:00:00 Z
18
+ date: 2013-07-22 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: savon