ratis 3.0.0 → 3.1.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.
- data/lib/ratis/next_bus.rb +31 -37
- data/lib/ratis/next_bus2.rb +93 -0
- data/lib/ratis/version.rb +1 -1
- data/lib/ratis.rb +1 -0
- metadata +33 -4
data/lib/ratis/next_bus.rb
CHANGED
@@ -2,58 +2,50 @@ module Ratis
|
|
2
2
|
|
3
3
|
class NextBus
|
4
4
|
|
5
|
-
attr_accessor :
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
#
|
10
|
-
# == Parameters:
|
11
|
-
#
|
12
|
-
# [stops] <em>Optional</em> -
|
13
|
-
# An array of stops. Defaults to empty array.
|
14
|
-
# [runs] <em>Optional</em> -
|
15
|
-
# An array of runs. Defaults to empty array.
|
16
|
-
|
17
|
-
def initialize(_stops = [], _runs = [])
|
18
|
-
@stops, @runs = _stops, _runs
|
19
|
-
end
|
5
|
+
attr_accessor :runs, :status, :sign, :routetype, :times, :direction
|
6
|
+
|
7
|
+
def initialize(service, _runs = [])
|
8
|
+
@runs = _runs
|
20
9
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
#
|
28
|
-
# [option1] <b>Required</b> -
|
29
|
-
# Description of required param
|
30
|
-
# [option2] <em>Optional</em> -
|
31
|
-
# Description of optional param
|
32
|
-
# [option3] <em>Optional</em> -
|
33
|
-
# Description of optional param
|
34
|
-
# [option4] <em>Optional</em> -
|
35
|
-
# Description of optional param
|
10
|
+
@status = service[:status]
|
11
|
+
@sign = service[:sign]
|
12
|
+
@routetype = service[:routetype]
|
13
|
+
@times = service[:times]
|
14
|
+
@direction = service[:direction]
|
15
|
+
end
|
36
16
|
|
37
17
|
def self.where(conditions)
|
38
|
-
stop_id = conditions.delete
|
39
|
-
app_id = conditions.delete(:app_id) || '
|
18
|
+
stop_id = conditions.delete(:stop_id)
|
19
|
+
app_id = conditions.delete(:app_id) || 'ratis-specs'
|
20
|
+
type = conditions.delete(:type) || 'N' # N for Next Bus
|
21
|
+
|
22
|
+
if datetime = conditions.delete(:datetime)
|
23
|
+
raise ArgumentError.new('If datetime supplied it should be a Time or DateTime instance, otherwise it defaults to Time.now') unless datetime.is_a?(DateTime) || datetime.is_a?(Time)
|
24
|
+
else
|
25
|
+
datetime = Time.now
|
26
|
+
end
|
40
27
|
|
41
28
|
raise ArgumentError.new('You must provide a stop ID') unless stop_id
|
29
|
+
|
42
30
|
Ratis.all_conditions_used? conditions
|
43
31
|
|
44
|
-
response = Request.get '
|
32
|
+
response = Request.get 'Nextbus', {'Stopid' => stop_id,
|
33
|
+
'Appid' => app_id,
|
34
|
+
'Date' => datetime.strftime("%m/%d/%Y"),
|
35
|
+
'Time' => datetime.strftime("%I%M"),
|
36
|
+
'Type' => type }
|
45
37
|
return [] unless response.success?
|
46
38
|
|
47
|
-
|
48
|
-
runs
|
49
|
-
|
50
|
-
NextBus.new stops, runs
|
39
|
+
service = response.body[:nextbus_response][:atstop][:service]
|
40
|
+
runs = response.to_array :nextbus_response, :atstop, :service, :tripinfo
|
41
|
+
NextBus.new service, runs
|
51
42
|
end
|
52
43
|
|
53
44
|
# Gets description of first stop
|
54
45
|
# @return [String] Description of first stop or nil.
|
55
46
|
|
56
47
|
def first_stop_description
|
48
|
+
raise 'Not yet implemented'
|
57
49
|
stops.first ? stops.first[:description] : nil
|
58
50
|
end
|
59
51
|
|
@@ -61,6 +53,7 @@ module Ratis
|
|
61
53
|
# @return [Hash] NextBus details in a hash.
|
62
54
|
|
63
55
|
def to_hash
|
56
|
+
raise 'Not yet implemented'
|
64
57
|
{ :stopname => first_stop_description,
|
65
58
|
:signs => runs.map { |run| run[:sign] }.uniq,
|
66
59
|
:runs => runs.map do |run|
|
@@ -77,6 +70,7 @@ module Ratis
|
|
77
70
|
# @private
|
78
71
|
|
79
72
|
def to_hash_for_xml
|
73
|
+
raise 'Not yet implemented'
|
80
74
|
{ :stopname => first_stop_description,
|
81
75
|
:runs => runs.map do |run|
|
82
76
|
{ :time => run[:estimatedtime],
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module Ratis
|
2
|
+
|
3
|
+
class NextBus2
|
4
|
+
|
5
|
+
attr_accessor :stops, :runs
|
6
|
+
|
7
|
+
# Initializes a NextBus object with stops and runs.
|
8
|
+
# @return [NextBus]
|
9
|
+
#
|
10
|
+
# == Parameters:
|
11
|
+
#
|
12
|
+
# [stops] <em>Optional</em> -
|
13
|
+
# An array of stops. Defaults to empty array.
|
14
|
+
# [runs] <em>Optional</em> -
|
15
|
+
# An array of runs. Defaults to empty array.
|
16
|
+
|
17
|
+
def initialize(_stops = [], _runs = [])
|
18
|
+
@stops, @runs = _stops, _runs
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns results of NextBus query containing arrays of stops and runs.
|
22
|
+
# @return [NextBus] containing next buses.
|
23
|
+
#
|
24
|
+
# == Parameters:
|
25
|
+
#
|
26
|
+
# Takes hash of conditions
|
27
|
+
#
|
28
|
+
# [option1] <b>Required</b> -
|
29
|
+
# Description of required param
|
30
|
+
# [option2] <em>Optional</em> -
|
31
|
+
# Description of optional param
|
32
|
+
# [option3] <em>Optional</em> -
|
33
|
+
# Description of optional param
|
34
|
+
# [option4] <em>Optional</em> -
|
35
|
+
# Description of optional param
|
36
|
+
|
37
|
+
def self.where(conditions)
|
38
|
+
stop_id = conditions.delete :stop_id
|
39
|
+
app_id = conditions.delete(:app_id) || 'na'
|
40
|
+
|
41
|
+
raise ArgumentError.new('You must provide a stop ID') unless stop_id
|
42
|
+
Ratis.all_conditions_used? conditions
|
43
|
+
|
44
|
+
response = Request.get 'Nextbus2', { 'Stopid' => stop_id, 'Appid' => app_id }
|
45
|
+
return [] unless response.success?
|
46
|
+
debugger
|
47
|
+
stops = response.to_array :nextbus2_response, :stops, :stop
|
48
|
+
runs = response.to_array :nextbus2_response, :runs, :run
|
49
|
+
|
50
|
+
NextBus.new stops, runs
|
51
|
+
end
|
52
|
+
|
53
|
+
# Gets description of first stop
|
54
|
+
# @return [String] Description of first stop or nil.
|
55
|
+
|
56
|
+
def first_stop_description
|
57
|
+
stops.first ? stops.first[:description] : nil
|
58
|
+
end
|
59
|
+
|
60
|
+
# Details of NextBus instance in a hash.
|
61
|
+
# @return [Hash] NextBus details in a hash.
|
62
|
+
|
63
|
+
def to_hash
|
64
|
+
{ :stopname => first_stop_description,
|
65
|
+
:signs => runs.map { |run| run[:sign] }.uniq,
|
66
|
+
:runs => runs.map do |run|
|
67
|
+
{ :time => run[:estimatedtime],
|
68
|
+
:sign => run[:sign],
|
69
|
+
:adherence => run[:adherence],
|
70
|
+
:route => run[:route]
|
71
|
+
}
|
72
|
+
end
|
73
|
+
}
|
74
|
+
end
|
75
|
+
|
76
|
+
# Details of NextBus instance in a hash to be transformed to xml
|
77
|
+
# @private
|
78
|
+
|
79
|
+
def to_hash_for_xml
|
80
|
+
{ :stopname => first_stop_description,
|
81
|
+
:runs => runs.map do |run|
|
82
|
+
{ :time => run[:estimatedtime],
|
83
|
+
:scheduled_time => run[:triptime],
|
84
|
+
:sign => run[:sign],
|
85
|
+
:adherence => run[:adherence],
|
86
|
+
:route => run[:route]
|
87
|
+
}
|
88
|
+
end
|
89
|
+
}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
data/lib/ratis/version.rb
CHANGED
data/lib/ratis.rb
CHANGED
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:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 3.0.0
|
10
|
+
version: 3.1.0
|
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-
|
18
|
+
date: 2013-06-06 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: savon
|
@@ -190,6 +190,34 @@ dependencies:
|
|
190
190
|
version: "0"
|
191
191
|
type: :development
|
192
192
|
version_requirements: *id012
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: rspec-instafail
|
195
|
+
prerelease: false
|
196
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
197
|
+
none: false
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
hash: 3
|
202
|
+
segments:
|
203
|
+
- 0
|
204
|
+
version: "0"
|
205
|
+
type: :development
|
206
|
+
version_requirements: *id013
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: chronic
|
209
|
+
prerelease: false
|
210
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
211
|
+
none: false
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
hash: 3
|
216
|
+
segments:
|
217
|
+
- 0
|
218
|
+
version: "0"
|
219
|
+
type: :development
|
220
|
+
version_requirements: *id014
|
193
221
|
description:
|
194
222
|
email: irish@burstdev.com
|
195
223
|
executables: []
|
@@ -209,6 +237,7 @@ files:
|
|
209
237
|
- lib/ratis/landmark_category.rb
|
210
238
|
- lib/ratis/location.rb
|
211
239
|
- lib/ratis/next_bus.rb
|
240
|
+
- lib/ratis/next_bus2.rb
|
212
241
|
- lib/ratis/pattern/routeinfo.rb
|
213
242
|
- lib/ratis/pattern.rb
|
214
243
|
- lib/ratis/point_2_point/group.rb
|