ratis 3.1.4 → 3.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -13,4 +13,7 @@
13
13
  - Turns out that in the NextBus calls the <service> tag can come back as either a single node or list of nodes. In one case savon turns this into an array, in the other case it's just a single entity. Rewrote NextBus.where to handle these two cases, this also means NextBus would never really represent a single service. Created a NextBus.services method that returns all these entities in a similar manner. Update test specs
14
14
 
15
15
  3.1.4
16
- - Bug Fix: NextBus trips returned can be an array or a single hash
16
+ - Bug Fix: NextBus trips returned can be an array or a single hash
17
+
18
+ 3.1.5
19
+ - Bug Fix: NextBus where was incorrectly sending Time in 12 hour format when ATIS needs it in 24 hour format.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ratis (3.1.3)
4
+ ratis (3.1.4)
5
5
  savon (< 2.0)
6
6
 
7
7
  GEM
@@ -5,27 +5,37 @@ module Ratis
5
5
  attr_accessor :stop, :services, :success
6
6
 
7
7
  def initialize(response)
8
- @success = response.success?
9
- @stop = response.body[:nextbus_response][:atstop]
10
- _services = @stop.delete(:service)
8
+ @success = response.success?
11
9
 
12
- unless _services.is_a?(Array)
13
- _services = [_services]
14
- end
10
+ if @success
11
+ @stop = response.body[:nextbus_response][:atstop]
12
+
13
+ _services = @stop.delete(:service)
14
+
15
+ unless _services.is_a?(Array)
16
+ _services = [_services]
17
+ end
15
18
 
16
- @services = _services.map do |service|
17
- OpenStruct.new(:status => service[:status],
18
- :sign => service[:sign],
19
- :routetype => service[:routetype],
20
- :times => service[:times],
21
- :direction => service[:direction],
22
- :servicetype => service[:servicetype],
23
- :route => service[:route],
24
- :operator => service[:operator],
25
- :trips => parse_trip_info(service[:tripinfo])
26
- )
19
+ @services = _services.map do |service|
20
+ OpenStruct.new(:status => service[:status],
21
+ :sign => service[:sign],
22
+ :routetype => service[:routetype],
23
+ :times => service[:times],
24
+ :direction => service[:direction],
25
+ :servicetype => service[:servicetype],
26
+ :route => service[:route],
27
+ :operator => service[:operator],
28
+ :trips => parse_trip_info(service[:tripinfo])
29
+ )
30
+ end
31
+
32
+ else
33
+ @stop = {}
34
+ @services = []
27
35
  end
28
36
 
37
+ debugger
38
+ x = 1
29
39
  end
30
40
 
31
41
  def parse_trip_info(trips)
@@ -77,7 +87,7 @@ module Ratis
77
87
  response = Request.get 'Nextbus', {'Stopid' => stop_id,
78
88
  'Appid' => app_id,
79
89
  'Date' => datetime.strftime("%m/%d/%Y"),
80
- 'Time' => datetime.strftime("%I%M"),
90
+ 'Time' => datetime.strftime("%H%M"),
81
91
  'Type' => type }
82
92
 
83
93
  NextBus.new(response)
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.1.4'
8
+ string = '3.1.5'
9
9
 
10
10
  def string.parts
11
11
  split('.').map { |p| p.to_i }
@@ -20,6 +20,25 @@ describe Ratis::NextBus do
20
20
  end
21
21
 
22
22
  describe '#where' do
23
+ describe 'time formatting' do
24
+ it 'should make requests with 24 hour time format' do
25
+ @stop_id = 10050
26
+ @time = Chronic.parse('tomorrow at 3pm')
27
+ @conditions = {:stop_id => @stop_id,
28
+ :app_id => 'ratis-specs', # a short string that can be used to separate requests from different applications or different modules with
29
+ :type => 'N',
30
+ :datetime => @time }
31
+
32
+ Ratis::Request.should_receive(:get) do |action, options|
33
+ action.should eq('Nextbus')
34
+ options["Time"].should eq(@time.strftime("%H%M"))
35
+
36
+ end.and_return(double('response', :success? => false, :body => empty_body)) # false only to stop further running
37
+
38
+ Ratis::NextBus.where(@conditions.dup)
39
+ end
40
+ end
41
+
23
42
  describe 'single service return' do
24
43
  before do
25
44
  @stop_id = 10050
@@ -27,9 +46,10 @@ describe Ratis::NextBus do
27
46
  :app_id => 'ratis-specs', # a short string that can be used to separate requests from different applications or different modules with
28
47
  :type => 'N',
29
48
  :datetime => @time }
49
+
30
50
  end
31
51
 
32
- it 'returns the next 4 bus times' do
52
+ it 'returns the next bus times' do
33
53
  # raises exception when no runs available:
34
54
  # Ratis::Errors::SoapError:
35
55
  # SOAP - no runs available
@@ -49,7 +69,7 @@ describe Ratis::NextBus do
49
69
  options["Stopid"].should eq(@stop_id)
50
70
  options["Appid"].should eq('ratis-specs')
51
71
  options["Date"].should eq(@time.strftime("%m/%d/%Y"))
52
- options["Time"].should eq(@time.strftime("%I%M"))
72
+ options["Time"].should eq(@time.strftime("%H%M"))
53
73
  options["Type"].should eq('N')
54
74
 
55
75
  end.and_return(double('response', :success? => false, :body => empty_body)) # false only to stop further running
@@ -99,7 +119,7 @@ describe Ratis::NextBus do
99
119
  options["Stopid"].should eq(@stop_id)
100
120
  options["Appid"].should eq('ratis-specs')
101
121
  options["Date"].should eq(@time.strftime("%m/%d/%Y"))
102
- options["Time"].should eq(@time.strftime("%I%M"))
122
+ options["Time"].should eq(@time.strftime("%H%M"))
103
123
  options["Type"].should eq('N')
104
124
 
105
125
  end.and_return(double('response', :success? => false, :body => empty_body)) # false only to stop further running
@@ -137,7 +157,7 @@ describe Ratis::NextBus do
137
157
  options["Stopid"].should eq(@stop_id)
138
158
  options["Appid"].should eq('ratis-specs')
139
159
  options["Date"].should eq(@time.strftime("%m/%d/%Y"))
140
- options["Time"].should eq(@time.strftime("%I%M"))
160
+ options["Time"].should eq(@time.strftime("%H%M"))
141
161
  options["Type"].should eq('N')
142
162
 
143
163
  end.and_return(double('response', :success? => false, :body => empty_body)) # false only to stop further running
@@ -198,7 +218,7 @@ describe Ratis::NextBus do
198
218
  it "should return an empty array if the api request isn't successful" do
199
219
  Ratis::Request.should_receive('get') do |action, options|
200
220
  action.should eq('Nextbus')
201
- options["Time"].should eq(@time.strftime("%I%M") )
221
+ options["Time"].should eq(@time.strftime("%H%M") )
202
222
  options["Type"].should eq("N")
203
223
  options["Stopid"].should eq(@stop_id)
204
224
  options["Date"].should eq(@time.strftime("%m/%d/%Y") )
@@ -1,4 +1,5 @@
1
1
  ---
2
+ recorded_with: VCR 2.4.0
2
3
  http_interactions:
3
4
  - request:
4
5
  method: post
@@ -20,25 +21,25 @@ http_interactions:
20
21
  aW50MnBvaW50PjwvZW52OkJvZHk+PC9lbnY6RW52ZWxvcGU+
21
22
 
22
23
  headers:
23
- Soapaction:
24
- - "\"PX_WEB#Point2point\""
25
24
  Content-Type:
26
25
  - text/xml;charset=UTF-8
27
26
  Accept:
28
27
  - "*/*"
29
28
  Content-Length:
30
29
  - "576"
30
+ Soapaction:
31
+ - "\"PX_WEB#Point2point\""
31
32
  response:
32
33
  status:
33
34
  code: 302
34
35
  message: Found
35
36
  headers:
36
- Server:
37
- - BigIP
38
- Content-Length:
39
- - "0"
40
37
  Connection:
41
38
  - Keep-Alive
39
+ Content-Length:
40
+ - "0"
41
+ Server:
42
+ - BigIP
42
43
  Location:
43
44
  - http://www.iana.org/domains/example/
44
45
  body:
@@ -55,41 +56,41 @@ http_interactions:
55
56
  c29hcC9lbnZlbG9wZS8iIHhtbG5zOndzZGw9IlBYX1dFQiIgeG1sbnM6eHNk
56
57
  PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNp
57
58
  PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+
58
- PGVudjpCb2R5PjxQb2ludDJwb2ludCB4bWxucz0iUFhfV0VCIj48RW5kdGlt
59
- ZT4xODAwPC9FbmR0aW1lPjxEZXN0aW5hdGlvbmxhdD4zMy40NDcwOTg8L0Rl
60
- c3RpbmF0aW9ubGF0PjxEZXN0aW5hdGlvbmxvbmc+LTExMi4wNzcyMTM8L0Rl
61
- c3RpbmF0aW9ubG9uZz48RGF0ZT4wNi8wNi8yMDEzPC9EYXRlPjxPcmlnaW5s
62
- b25nPi0xMTIuMDk3OTAzPC9PcmlnaW5sb25nPjxTdGFydHRpbWU+MTcwMDwv
63
- U3RhcnR0aW1lPjxSb3V0ZXNvbmx5Plk8L1JvdXRlc29ubHk+PFJvdXRlcz4x
64
- PC9Sb3V0ZXM+PE9yaWdpbmxhdD4zMy40NDY5MzE8L09yaWdpbmxhdD48L1Bv
59
+ PGVudjpCb2R5PjxQb2ludDJwb2ludCB4bWxucz0iUFhfV0VCIj48RGVzdGlu
60
+ YXRpb25sYXQ+MzMuNDQ3MDk4PC9EZXN0aW5hdGlvbmxhdD48U3RhcnR0aW1l
61
+ PjE3MDA8L1N0YXJ0dGltZT48RW5kdGltZT4xODAwPC9FbmR0aW1lPjxSb3V0
62
+ ZXM+MTwvUm91dGVzPjxSb3V0ZXNvbmx5Plk8L1JvdXRlc29ubHk+PE9yaWdp
63
+ bmxhdD4zMy40NDY5MzE8L09yaWdpbmxhdD48T3JpZ2lubG9uZz4tMTEyLjA5
64
+ NzkwMzwvT3JpZ2lubG9uZz48RGVzdGluYXRpb25sb25nPi0xMTIuMDc3MjEz
65
+ PC9EZXN0aW5hdGlvbmxvbmc+PERhdGU+MDYvMTAvMjAxMzwvRGF0ZT48L1Bv
65
66
  aW50MnBvaW50PjwvZW52OkJvZHk+PC9lbnY6RW52ZWxvcGU+
66
67
 
67
68
  headers:
68
- Soapaction:
69
- - "\"PX_WEB#Point2point\""
70
69
  Content-Type:
71
70
  - text/xml;charset=UTF-8
72
71
  Accept:
73
72
  - "*/*"
74
73
  Content-Length:
75
74
  - "576"
75
+ Soapaction:
76
+ - "\"PX_WEB#Point2point\""
76
77
  response:
77
78
  status:
78
79
  code: 200
79
80
  message: OK
80
81
  headers:
81
- Server:
82
- - Apache/2.2.3 (CentOS)
83
- Date:
84
- - Thu, 06 Jun 2013 23:02:44 GMT
85
82
  Content-Type:
86
83
  - text/xml; charset=utf-8
84
+ Connection:
85
+ - close
87
86
  Soapserver:
88
87
  - SOAP::Lite/Perl/0.55
88
+ Server:
89
+ - Apache/2.2.3 (CentOS)
89
90
  Content-Length:
90
91
  - "4558"
91
- Connection:
92
- - close
92
+ Date:
93
+ - Tue, 11 Jun 2013 00:18:05 GMT
93
94
  body:
94
95
  base64_string: |
95
96
  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48U09BUC1F
@@ -196,5 +197,4 @@ http_interactions:
196
197
  RU5WOkVudmVsb3BlPg==
197
198
 
198
199
  http_version:
199
- recorded_at: Thu, 06 Jun 2013 23:02:44 GMT
200
- recorded_with: VCR 2.4.0
200
+ recorded_at: Tue, 11 Jun 2013 00:18:06 GMT
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
  - 1
9
- - 4
10
- version: 3.1.4
9
+ - 5
10
+ version: 3.1.5
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-06-07 00:00:00 Z
18
+ date: 2013-06-11 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: savon