ratis 2.5.2.8 → 3.0.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/README.md +5 -4
- data/lib/ratis.rb +7 -0
- data/lib/ratis/area.rb +22 -0
- data/lib/ratis/closest_stop.rb +27 -24
- data/lib/ratis/pattern.rb +51 -0
- data/lib/ratis/pattern/routeinfo.rb +7 -0
- data/lib/ratis/point_2_point.rb +15 -14
- data/lib/ratis/route.rb +1 -1
- data/lib/ratis/route_pattern.rb +53 -0
- data/lib/ratis/route_pattern/point.rb +7 -0
- data/lib/ratis/route_pattern/stop.rb +7 -0
- data/lib/ratis/route_stops.rb +13 -11
- data/lib/ratis/schedule_nearby.rb +22 -13
- data/lib/ratis/stop.rb +14 -0
- data/lib/ratis/timetable.rb +16 -7
- data/lib/ratis/version.rb +1 -5
- metadata +124 -34
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Ratis
|
2
2
|
A Ruby wrapper for Trapeze Group's ATIS SOAP server.
|
3
3
|
|
4
|
+
*Note* This is NOT a public api. You won't be able to use this gem without being first setup with the Trapeze Group.
|
5
|
+
|
4
6
|
Goals:
|
5
7
|
|
6
8
|
- Wrap SOAP methods
|
@@ -19,7 +21,6 @@ Currently Supports Ruby `1.8.7` and `1.9.3`
|
|
19
21
|
|
20
22
|
Gem installation
|
21
23
|
-------------------
|
22
|
-
1. Ensure that an SSH identity with permission for the *authoritylabs* organization on github is available to Bundler.
|
23
24
|
1. Include the gem in your Gemfile thus:
|
24
25
|
|
25
26
|
gem 'ratis', '[VERSION]'
|
@@ -69,7 +70,7 @@ All the classes should be named to match the ATIS method:
|
|
69
70
|
Notable exceptions:
|
70
71
|
|
71
72
|
Routes contains Allroutes method with the thinking that this might be extened for other routes methods, but is probably not necessary and should be renamed
|
72
|
-
|
73
|
+
|
73
74
|
### Queries
|
74
75
|
By convention most provide either an `all` or `where` class method (following [Active Record's hash conditions syntax](http://guides.rubyonrails.org/active_record_querying.html#hash-conditions)), which will return an array of objects which wrap the response, e.g:
|
75
76
|
|
@@ -94,7 +95,7 @@ When something goes wrong with the SOAP transaction an `Error` will be raised:
|
|
94
95
|
#<Error: #10222--Unknown stop>
|
95
96
|
|
96
97
|
|
97
|
-
Development
|
98
|
+
Development
|
98
99
|
-------------------
|
99
100
|
|
100
101
|
### Installation
|
@@ -155,7 +156,7 @@ You get the following:
|
|
155
156
|
|
156
157
|
Now when a request for `Getlandmarks` is made the response's method version will be checked, and an `AtisError` will be thrown if it has not been declared. This ensures that a change on the SOAP server will not result in invalid response parsing by Ratis.
|
157
158
|
|
158
|
-
1. `all_conditions_used?` will raise an `ArgumentError` if the given hash is not empty.
|
159
|
+
1. `all_conditions_used?` will raise an `ArgumentError` if the given hash is not empty.
|
159
160
|
|
160
161
|
Convention in Ratis is to provide a `self.where(conditions)` method (following [Active Record's hash conditions syntax](http://guides.rubyonrails.org/active_record_querying.html#hash-conditions)). As each key in `conditions` is used it can be `delete`d from `conditions`, then `all_conditions_used? conditions` can be called to ensure nothing unimplemented was passed to `where`.
|
161
162
|
|
data/lib/ratis.rb
CHANGED
@@ -9,6 +9,8 @@ require 'ratis/landmark'
|
|
9
9
|
require 'ratis/landmark_category'
|
10
10
|
require 'ratis/location'
|
11
11
|
require 'ratis/next_bus'
|
12
|
+
require 'ratis/pattern'
|
13
|
+
require 'ratis/pattern/routeinfo'
|
12
14
|
require 'ratis/point_2_point'
|
13
15
|
require 'ratis/point_2_point/group'
|
14
16
|
require 'ratis/point_2_point/routes_only_response'
|
@@ -18,13 +20,18 @@ require 'ratis/point_2_point/stop'
|
|
18
20
|
require 'ratis/point_2_point/trip'
|
19
21
|
require 'ratis/request'
|
20
22
|
require 'ratis/route'
|
23
|
+
require 'ratis/route_pattern'
|
24
|
+
require 'ratis/route_pattern/stop'
|
25
|
+
require 'ratis/route_pattern/point'
|
21
26
|
require 'ratis/route_stops'
|
22
27
|
require 'ratis/route_stops/stop'
|
23
28
|
require 'ratis/schedule_nearby'
|
29
|
+
require 'ratis/stop'
|
24
30
|
require 'ratis/timetable'
|
25
31
|
require 'ratis/timetable/stop'
|
26
32
|
require 'ratis/timetable/trip'
|
27
33
|
require 'ratis/walk'
|
34
|
+
require 'ratis/area'
|
28
35
|
|
29
36
|
module Ratis
|
30
37
|
|
data/lib/ratis/area.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
module Ratis
|
2
|
+
|
3
|
+
class Area
|
4
|
+
|
5
|
+
attr_accessor :area, :description
|
6
|
+
|
7
|
+
def self.all
|
8
|
+
response = Request.get('Getareas')
|
9
|
+
|
10
|
+
return [] unless response.success?
|
11
|
+
|
12
|
+
response.to_array(:getareas_response, :areainfo).map do |areainfo|
|
13
|
+
atis_area = Area.new
|
14
|
+
atis_area.area = areainfo[:area]
|
15
|
+
atis_area.description = areainfo[:description]
|
16
|
+
atis_area
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/lib/ratis/closest_stop.rb
CHANGED
@@ -1,41 +1,44 @@
|
|
1
1
|
module Ratis
|
2
|
-
|
3
2
|
class ClosestStop
|
4
3
|
|
5
4
|
def self.where(conditions)
|
6
|
-
latitude
|
7
|
-
longitude
|
5
|
+
latitude = conditions.delete :latitude
|
6
|
+
longitude = conditions.delete :longitude
|
8
7
|
location_text = conditions.delete :location_text
|
9
|
-
num_stops
|
8
|
+
num_stops = conditions.delete :num_stops
|
10
9
|
|
11
10
|
raise ArgumentError.new('You must provide a longitude') unless longitude
|
12
|
-
raise ArgumentError.new('You must provide a latitude')
|
11
|
+
raise ArgumentError.new('You must provide a latitude') unless latitude
|
13
12
|
|
14
13
|
Ratis.all_conditions_used? conditions
|
15
14
|
|
16
15
|
response = Request.get 'Closeststop',
|
17
|
-
|
16
|
+
{'Locationlat' => latitude,
|
17
|
+
'Locationlong' => longitude,
|
18
|
+
'Locationtext' => location_text,
|
19
|
+
'Numstops' => num_stops }
|
18
20
|
|
19
21
|
return [] unless response.success?
|
20
22
|
|
21
|
-
stops = response.to_hash[:closeststop_response][:stops][:stop].map do |
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
23
|
+
stops = response.to_hash[:closeststop_response][:stops][:stop].map do |arr|
|
24
|
+
next if arr[:description].blank?
|
25
|
+
|
26
|
+
stop = Ratis::Stop.new
|
27
|
+
stop.walk_dist = arr[:walkdist]
|
28
|
+
stop.description = arr[:description]
|
29
|
+
stop.stop_id = arr[:stopid]
|
30
|
+
stop.atis_stop_id = arr[:atisstopid]
|
31
|
+
stop.latitude = arr[:lat]
|
32
|
+
stop.longitude = arr[:long]
|
33
|
+
stop.walk_dir = arr[:walkdir]
|
34
|
+
stop.side = arr[:side]
|
35
|
+
stop.heading = arr[:heading]
|
36
|
+
stop.stop_position = arr[:stopposition]
|
37
|
+
stop.route_dirs = arr[:routedirs]
|
38
|
+
stop
|
39
|
+
|
40
|
+
end.compact
|
41
|
+
|
39
42
|
end
|
40
43
|
|
41
44
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Ratis
|
2
|
+
class Pattern
|
3
|
+
attr_accessor :route_short_name, :direction, :date, :service_type, :longest, :routeinfos
|
4
|
+
|
5
|
+
def initialize(options)
|
6
|
+
self.routeinfos = options[:routeinfos]
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.all(conditions)
|
10
|
+
short_name = conditions.delete :route_short_name
|
11
|
+
direction = conditions.delete :direction
|
12
|
+
date = conditions.delete :date
|
13
|
+
service_type = conditions.delete :service_type
|
14
|
+
longest = conditions.delete :longest
|
15
|
+
|
16
|
+
raise ArgumentError.new('You must provide a route_short_name') unless short_name
|
17
|
+
raise ArgumentError.new('You must provide a direction') unless direction
|
18
|
+
raise ArgumentError.new('You must provide a date') unless date
|
19
|
+
raise ArgumentError.new('You must provide a service_type') unless service_type
|
20
|
+
raise ArgumentError.new('You must provide a longest') unless longest
|
21
|
+
|
22
|
+
Ratis.all_conditions_used? conditions
|
23
|
+
|
24
|
+
response = Request.get 'Getpatterns',
|
25
|
+
{'Route' => short_name,
|
26
|
+
'Direction' => direction,
|
27
|
+
'Date' => date,
|
28
|
+
'Servicetype' => service_type,
|
29
|
+
'Longest' => longest }
|
30
|
+
|
31
|
+
return nil unless response.success?
|
32
|
+
|
33
|
+
routeinfos = response.to_hash[:getpatterns_response][:routes][:routeinfo].map do |r|
|
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]
|
43
|
+
info
|
44
|
+
end
|
45
|
+
|
46
|
+
Pattern.new(:routeinfos => routeinfos)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
data/lib/ratis/point_2_point.rb
CHANGED
@@ -64,28 +64,29 @@ module Ratis
|
|
64
64
|
return nil unless response.success?
|
65
65
|
|
66
66
|
atis_schedule = Point2Point::StandardResponse.new
|
67
|
+
|
67
68
|
atis_schedule.groups = response.to_array(:point2point_response, :groups, :group).map do |group|
|
68
69
|
atis_schedule_group = Point2Point::Group.new
|
69
70
|
|
70
71
|
# Point2point 1.3 uses inconsistent tag naming, thus: <onstop> <onwalk...>, but <offstop> <offstopwalk...>
|
71
72
|
# this docs says this is fixed in 1.4, so watch out
|
72
|
-
atis_schedule_group.on_stop
|
73
|
+
atis_schedule_group.on_stop = atis_stop_from_hash 'on', group[:onstop]
|
73
74
|
atis_schedule_group.off_stop = atis_stop_from_hash 'offstop', group[:offstop]
|
74
75
|
|
75
76
|
atis_schedule_group.trips = group.to_array(:trips, :trip).map do |trip|
|
76
|
-
atis_trip
|
77
|
-
atis_trip.on_time
|
77
|
+
atis_trip = Point2Point::Trip.new
|
78
|
+
atis_trip.on_time = trip[:ontime]
|
78
79
|
atis_trip.off_time = trip[:offtime]
|
79
80
|
|
80
81
|
atis_trip.service = trip.to_array(:service).map do |service|
|
81
|
-
atis_service
|
82
|
+
atis_service = Point2Point::Service.new
|
82
83
|
|
83
|
-
atis_service.route
|
84
|
-
atis_service.direction
|
84
|
+
atis_service.route = service[:route]
|
85
|
+
atis_service.direction = service[:direction]
|
85
86
|
atis_service.service_type = service[:servicetype]
|
86
|
-
atis_service.signage
|
87
|
-
atis_service.route_type
|
88
|
-
atis_service.exception
|
87
|
+
atis_service.signage = service[:signage]
|
88
|
+
atis_service.route_type = service[:routetype]
|
89
|
+
atis_service.exception = service[:exception]
|
89
90
|
atis_service
|
90
91
|
end.first
|
91
92
|
|
@@ -101,15 +102,15 @@ module Ratis
|
|
101
102
|
def self.atis_stop_from_hash(prefix, stop)
|
102
103
|
return nil if stop.blank?
|
103
104
|
|
104
|
-
atis_stop
|
105
|
-
atis_stop.description
|
105
|
+
atis_stop = Point2Point::Stop.new
|
106
|
+
atis_stop.description = stop[:description]
|
106
107
|
atis_stop.atis_stop_id = stop[:atisstopid].to_i
|
107
|
-
atis_stop.latitude
|
108
|
-
atis_stop.longitude
|
108
|
+
atis_stop.latitude = stop[:lat].to_f
|
109
|
+
atis_stop.longitude = stop[:long].to_f
|
109
110
|
|
110
111
|
# It appears that both *walk and *walkdist are used for the walk distance, covering both here
|
111
112
|
atis_stop.walk_dist = (stop["#{prefix}walk".to_sym] || stop["#{prefix}walkdist".to_sym]).to_f
|
112
|
-
atis_stop.walk_dir
|
113
|
+
atis_stop.walk_dir = stop["#{prefix}walkdir".to_sym]
|
113
114
|
atis_stop.walk_hint = stop["#{prefix}walkhint".to_sym]
|
114
115
|
atis_stop
|
115
116
|
end
|
data/lib/ratis/route.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
module Ratis
|
2
|
+
class RoutePattern
|
3
|
+
attr_accessor :route_short_name, :direction, :date, :service_type, :routeid, :stops, :points
|
4
|
+
|
5
|
+
#Ratis::RoutePattern.all( :route_short_name => "0", :direction => "N", :date => "01/28/2013", :service_type => 'W', :routeid => "61540")
|
6
|
+
def self.all(conditions)
|
7
|
+
short_name = conditions.delete :route_short_name
|
8
|
+
direction = conditions.delete :direction
|
9
|
+
date = conditions.delete :date
|
10
|
+
service_type = conditions.delete :service_type
|
11
|
+
routeid = conditions.delete :routeid
|
12
|
+
|
13
|
+
raise ArgumentError.new('You must provide a route_short_name') unless short_name
|
14
|
+
raise ArgumentError.new('You must provide a direction') unless direction
|
15
|
+
raise ArgumentError.new('You must provide a date') unless date
|
16
|
+
raise ArgumentError.new('You must provide a service_type') unless service_type
|
17
|
+
raise ArgumentError.new('You must provide a routeid') unless routeid
|
18
|
+
|
19
|
+
Ratis.all_conditions_used? conditions
|
20
|
+
|
21
|
+
request_params = { 'Route' => short_name, 'Direction' => direction, 'Date' => date, 'Servicetype' => service_type, 'Routeid' => routeid }
|
22
|
+
|
23
|
+
response = Request.get 'Routepattern', request_params
|
24
|
+
|
25
|
+
return nil unless response.success?
|
26
|
+
|
27
|
+
routepattern = RoutePattern.new
|
28
|
+
|
29
|
+
routepattern.stops = response.to_hash[:routepattern_response][:stops][:stop].map do |s|
|
30
|
+
stop = RoutePattern::Stop.new
|
31
|
+
stop.desc = s[:description]
|
32
|
+
stop.area = s[:area]
|
33
|
+
stop.atisid = s[:atisstopid]
|
34
|
+
stop.stopid = s[:stopid]
|
35
|
+
stop.point = s[:point]
|
36
|
+
stop.lat, stop.lng = s[:point].split ','
|
37
|
+
stop.boardflag = s[:boardflag]
|
38
|
+
stop.timepoint = s[:timepoint]
|
39
|
+
stop
|
40
|
+
end
|
41
|
+
|
42
|
+
routepattern.points = response.to_hash[:routepattern_response][:points][:point].map do |p|
|
43
|
+
point = RoutePattern::Point.new
|
44
|
+
point.lat, point.lng = p.split ','
|
45
|
+
point
|
46
|
+
end
|
47
|
+
|
48
|
+
routepattern
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/lib/ratis/route_stops.rb
CHANGED
@@ -9,32 +9,34 @@ module Ratis
|
|
9
9
|
class RouteStops
|
10
10
|
|
11
11
|
def self.all(conditions)
|
12
|
-
route
|
13
|
-
direction = conditions.delete(:direction)
|
14
|
-
order = conditions.delete(:order).to_s.upcase
|
12
|
+
route = conditions.delete(:route)
|
13
|
+
direction = conditions.delete(:direction)
|
15
14
|
|
16
|
-
raise ArgumentError.new('You must provide a route')
|
15
|
+
raise ArgumentError.new('You must provide a route') unless route
|
17
16
|
raise ArgumentError.new('You must provide a direction') unless direction
|
18
17
|
|
18
|
+
direction = direction.to_s.upcase
|
19
|
+
order = conditions.delete(:order).to_s.upcase
|
20
|
+
|
19
21
|
Ratis.all_conditions_used? conditions
|
20
22
|
|
21
23
|
request_params = {'Route' => route, 'Direction' => direction }
|
22
24
|
request_params.merge! order ? { 'Order' => order } : {}
|
25
|
+
|
23
26
|
response = Request.get 'Routestops', request_params
|
24
27
|
|
25
28
|
return [] unless response.success?
|
26
29
|
|
27
30
|
response.to_hash[:routestops_response][:stops][:stop].map do |s|
|
28
31
|
stop = RouteStops::Stop.new
|
29
|
-
stop.description
|
30
|
-
stop.area
|
31
|
-
stop.atis_stop_id
|
32
|
-
stop.stop_seq
|
33
|
-
stop.latitude, stop.longitude = s[:point].split
|
32
|
+
stop.description = s[:description]
|
33
|
+
stop.area = s[:area]
|
34
|
+
stop.atis_stop_id = s[:atisstopid]
|
35
|
+
stop.stop_seq = s[:stopseq]
|
36
|
+
stop.latitude, stop.longitude = s[:point].split(',')
|
34
37
|
stop
|
35
38
|
end
|
36
|
-
end
|
37
39
|
|
40
|
+
end
|
38
41
|
end
|
39
|
-
|
40
42
|
end
|
@@ -5,15 +5,15 @@ module Ratis
|
|
5
5
|
attr_accessor :atstops
|
6
6
|
|
7
7
|
def self.where(conditions)
|
8
|
-
latitude
|
9
|
-
longitude
|
10
|
-
date
|
11
|
-
time
|
12
|
-
window
|
13
|
-
walk_distance = conditions.delete
|
14
|
-
landmark_id
|
15
|
-
stop_id
|
16
|
-
app_id
|
8
|
+
latitude = conditions.delete(:latitude)
|
9
|
+
longitude = conditions.delete(:longitude)
|
10
|
+
date = conditions.delete(:date)
|
11
|
+
time = conditions.delete(:time)
|
12
|
+
window = conditions.delete(:window)
|
13
|
+
walk_distance = conditions.delete(:walk_distance)
|
14
|
+
landmark_id = conditions.delete(:landmark_id)
|
15
|
+
stop_id = conditions.delete(:stop_id) || ''
|
16
|
+
app_id = conditions.delete(:app_id) || 'na'
|
17
17
|
|
18
18
|
raise ArgumentError.new('You must provide latitude') unless latitude
|
19
19
|
raise ArgumentError.new('You must provide longitude') unless longitude
|
@@ -22,16 +22,25 @@ module Ratis
|
|
22
22
|
raise ArgumentError.new('You must provide window') unless window
|
23
23
|
raise ArgumentError.new('You must provide walk_distance') unless walk_distance
|
24
24
|
raise ArgumentError.new('You must provide landmark_id') unless landmark_id
|
25
|
+
|
25
26
|
Ratis.all_conditions_used? conditions
|
26
27
|
|
27
28
|
response = Request.get 'Schedulenearby',
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
{'Locationlat' => latitude,
|
30
|
+
'Locationlong' => longitude,
|
31
|
+
'Date' => date,
|
32
|
+
'Time' => time,
|
33
|
+
'Window' => window,
|
34
|
+
'Walkdist' => walk_distance,
|
35
|
+
'Landmarkid' => landmark_id,
|
36
|
+
'Stopid' => stop_id,
|
37
|
+
'Appid' => app_id
|
38
|
+
}
|
32
39
|
|
33
40
|
return [] unless response.success?
|
34
41
|
|
42
|
+
# TODO: where is this nightmare-ish hash being used?
|
43
|
+
# need to refactor this into something more OO
|
35
44
|
atstops = response.to_array :schedulenearby_response, :atstop
|
36
45
|
atstops.map do |atstop|
|
37
46
|
atstop[:services] = atstop.to_array :service
|
data/lib/ratis/stop.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
|
2
|
+
module Ratis
|
3
|
+
class Stop
|
4
|
+
attr_accessor :latitude, :longitude, :area, :walk_dir, :stop_position, :description, :route_dirs, :walk_dist, :side, :stop_id, :heading, :atis_stop_id
|
5
|
+
|
6
|
+
alias_method :lat, :latitude
|
7
|
+
alias_method :lng, :longitude
|
8
|
+
|
9
|
+
def route_dir
|
10
|
+
@route_dirs[:routedir]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
data/lib/ratis/timetable.rb
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
module Ratis
|
2
2
|
|
3
3
|
class Timetable
|
4
|
-
|
5
4
|
attr_accessor :route_short_name, :direction, :service_type, :operator, :effective, :timepoints, :trips
|
6
5
|
|
7
|
-
#Ratis::Timetable.where( :route_short_name => "460", :direction => "E", :service_type => 'W')
|
8
6
|
def self.where(conditions)
|
9
7
|
short_name = conditions.delete :route_short_name
|
10
8
|
direction = conditions.delete :direction
|
@@ -14,15 +12,18 @@ module Ratis
|
|
14
12
|
raise ArgumentError.new('You must provide a route_short_name') unless short_name
|
15
13
|
raise ArgumentError.new('You must provide a direction') unless direction
|
16
14
|
raise ArgumentError.new('You must provide either date or service_type') if date.blank? && service_type.blank?
|
15
|
+
|
17
16
|
Ratis.all_conditions_used? conditions
|
18
17
|
|
19
18
|
request_params = { 'Route' => short_name, 'Direction' => direction }
|
20
19
|
request_params.merge! date ? { 'Date' => date } : { 'Servicetype' => service_type }
|
21
20
|
|
22
21
|
response = Request.get 'Timetable', request_params
|
22
|
+
|
23
23
|
return nil unless response.success?
|
24
24
|
|
25
25
|
headway = response.to_hash[:timetable_response][:headway]
|
26
|
+
|
26
27
|
timetable = Timetable.new
|
27
28
|
timetable.route_short_name = headway[:route]
|
28
29
|
timetable.direction = headway[:direction]
|
@@ -31,17 +32,25 @@ module Ratis
|
|
31
32
|
timetable.effective = headway[:effective]
|
32
33
|
|
33
34
|
timepoints_array = []
|
34
|
-
|
35
|
-
|
35
|
+
|
36
|
+
headway[:timepoints][:stop].each_with_index do |tp, i|
|
37
|
+
timepoints_array << Timetable::Stop.new(i, tp[:atisstopid], tp[:stopid], tp[:description], tp[:area])
|
38
|
+
end rescue []
|
39
|
+
|
40
|
+
timetable.timepoints = timepoints_array
|
36
41
|
|
37
42
|
trips_array = []
|
38
|
-
|
43
|
+
|
44
|
+
headway[:times][:trip].each_with_index do |t,i|
|
45
|
+
trips_array << Timetable::Trip.new(i, t[:time], t[:comment])
|
46
|
+
end rescue []
|
47
|
+
|
39
48
|
timetable.trips = trips_array
|
40
49
|
|
41
50
|
timetable
|
42
51
|
end
|
43
|
-
|
44
|
-
|
52
|
+
|
53
|
+
|
45
54
|
|
46
55
|
end
|
47
56
|
|
data/lib/ratis/version.rb
CHANGED
@@ -5,7 +5,7 @@ module Ratis
|
|
5
5
|
def version
|
6
6
|
@version ||= begin
|
7
7
|
|
8
|
-
string = '
|
8
|
+
string = '3.0.0'
|
9
9
|
|
10
10
|
def string.parts
|
11
11
|
split('.').map { |p| p.to_i }
|
@@ -23,10 +23,6 @@ module Ratis
|
|
23
23
|
parts[2]
|
24
24
|
end
|
25
25
|
|
26
|
-
def string.patch
|
27
|
-
parts[3]
|
28
|
-
end
|
29
|
-
|
30
26
|
string
|
31
27
|
end
|
32
28
|
end
|
metadata
CHANGED
@@ -1,24 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ratis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 7
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 3
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 3.0.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
|
-
- AuthorityLabs
|
8
13
|
- Burst Software
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2013-
|
18
|
+
date: 2013-05-15 00:00:00 Z
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: savon
|
17
22
|
prerelease: false
|
18
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
19
25
|
requirements:
|
20
26
|
- - <
|
21
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 2
|
31
|
+
- 0
|
22
32
|
version: "2.0"
|
23
33
|
type: :runtime
|
24
34
|
version_requirements: *id001
|
@@ -26,10 +36,13 @@ dependencies:
|
|
26
36
|
name: activesupport
|
27
37
|
prerelease: false
|
28
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
29
40
|
requirements:
|
30
|
-
-
|
31
|
-
- ">="
|
41
|
+
- - ">="
|
32
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
33
46
|
version: "0"
|
34
47
|
type: :development
|
35
48
|
version_requirements: *id002
|
@@ -37,86 +50,146 @@ dependencies:
|
|
37
50
|
name: rspec
|
38
51
|
prerelease: false
|
39
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
40
54
|
requirements:
|
41
55
|
- - ~>
|
42
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 59
|
58
|
+
segments:
|
59
|
+
- 2
|
60
|
+
- 13
|
61
|
+
- 0
|
43
62
|
version: 2.13.0
|
44
63
|
type: :development
|
45
64
|
version_requirements: *id003
|
46
65
|
- !ruby/object:Gem::Dependency
|
47
66
|
name: simplecov
|
48
67
|
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
type: :development
|
78
|
+
version_requirements: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: webmock
|
81
|
+
prerelease: false
|
49
82
|
requirement: &id005 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
50
84
|
requirements:
|
51
|
-
-
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
52
91
|
type: :development
|
53
92
|
version_requirements: *id005
|
54
93
|
- !ruby/object:Gem::Dependency
|
55
|
-
name:
|
94
|
+
name: hashdiff
|
56
95
|
prerelease: false
|
57
96
|
requirement: &id006 !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
58
98
|
requirements:
|
59
|
-
-
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
hash: 3
|
102
|
+
segments:
|
103
|
+
- 0
|
104
|
+
version: "0"
|
60
105
|
type: :development
|
61
106
|
version_requirements: *id006
|
62
107
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
108
|
+
name: bundler
|
64
109
|
prerelease: false
|
65
110
|
requirement: &id007 !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
66
112
|
requirements:
|
67
|
-
-
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
hash: 23
|
116
|
+
segments:
|
117
|
+
- 1
|
118
|
+
- 0
|
119
|
+
- 0
|
120
|
+
version: 1.0.0
|
68
121
|
type: :development
|
69
122
|
version_requirements: *id007
|
70
123
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
124
|
+
name: yard
|
72
125
|
prerelease: false
|
73
126
|
requirement: &id008 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
74
128
|
requirements:
|
75
129
|
- - ">="
|
76
130
|
- !ruby/object:Gem::Version
|
77
|
-
|
131
|
+
hash: 3
|
132
|
+
segments:
|
133
|
+
- 0
|
134
|
+
version: "0"
|
78
135
|
type: :development
|
79
136
|
version_requirements: *id008
|
80
137
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
138
|
+
name: redcarpet
|
82
139
|
prerelease: false
|
83
140
|
requirement: &id009 !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
84
142
|
requirements:
|
85
|
-
-
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 3
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
version: "0"
|
86
149
|
type: :development
|
87
150
|
version_requirements: *id009
|
88
151
|
- !ruby/object:Gem::Dependency
|
89
|
-
name:
|
152
|
+
name: rake
|
90
153
|
prerelease: false
|
91
154
|
requirement: &id010 !ruby/object:Gem::Requirement
|
155
|
+
none: false
|
92
156
|
requirements:
|
93
|
-
-
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
hash: 3
|
160
|
+
segments:
|
161
|
+
- 0
|
162
|
+
version: "0"
|
94
163
|
type: :development
|
95
164
|
version_requirements: *id010
|
96
165
|
- !ruby/object:Gem::Dependency
|
97
|
-
name:
|
166
|
+
name: vcr
|
98
167
|
prerelease: false
|
99
168
|
requirement: &id011 !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
100
170
|
requirements:
|
101
|
-
-
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
hash: 3
|
174
|
+
segments:
|
175
|
+
- 0
|
176
|
+
version: "0"
|
102
177
|
type: :development
|
103
178
|
version_requirements: *id011
|
104
179
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
180
|
+
name: ruby-debug
|
106
181
|
prerelease: false
|
107
182
|
requirement: &id012 !ruby/object:Gem::Requirement
|
183
|
+
none: false
|
108
184
|
requirements:
|
109
|
-
-
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
hash: 3
|
188
|
+
segments:
|
189
|
+
- 0
|
190
|
+
version: "0"
|
110
191
|
type: :development
|
111
192
|
version_requirements: *id012
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: ruby-debug
|
114
|
-
prerelease: false
|
115
|
-
requirement: &id013 !ruby/object:Gem::Requirement
|
116
|
-
requirements:
|
117
|
-
- *id004
|
118
|
-
type: :development
|
119
|
-
version_requirements: *id013
|
120
193
|
description:
|
121
194
|
email: irish@burstdev.com
|
122
195
|
executables: []
|
@@ -126,6 +199,7 @@ extensions: []
|
|
126
199
|
extra_rdoc_files:
|
127
200
|
- README.md
|
128
201
|
files:
|
202
|
+
- lib/ratis/area.rb
|
129
203
|
- lib/ratis/closest_stop.rb
|
130
204
|
- lib/ratis/config.rb
|
131
205
|
- lib/ratis/core_ext.rb
|
@@ -135,6 +209,8 @@ files:
|
|
135
209
|
- lib/ratis/landmark_category.rb
|
136
210
|
- lib/ratis/location.rb
|
137
211
|
- lib/ratis/next_bus.rb
|
212
|
+
- lib/ratis/pattern/routeinfo.rb
|
213
|
+
- lib/ratis/pattern.rb
|
138
214
|
- lib/ratis/point_2_point/group.rb
|
139
215
|
- lib/ratis/point_2_point/routes_only_response.rb
|
140
216
|
- lib/ratis/point_2_point/service.rb
|
@@ -144,9 +220,13 @@ files:
|
|
144
220
|
- lib/ratis/point_2_point.rb
|
145
221
|
- lib/ratis/request.rb
|
146
222
|
- lib/ratis/route.rb
|
223
|
+
- lib/ratis/route_pattern/point.rb
|
224
|
+
- lib/ratis/route_pattern/stop.rb
|
225
|
+
- lib/ratis/route_pattern.rb
|
147
226
|
- lib/ratis/route_stops/stop.rb
|
148
227
|
- lib/ratis/route_stops.rb
|
149
228
|
- lib/ratis/schedule_nearby.rb
|
229
|
+
- lib/ratis/stop.rb
|
150
230
|
- lib/ratis/timetable/stop.rb
|
151
231
|
- lib/ratis/timetable/trip.rb
|
152
232
|
- lib/ratis/timetable.rb
|
@@ -157,25 +237,35 @@ files:
|
|
157
237
|
homepage:
|
158
238
|
licenses: []
|
159
239
|
|
160
|
-
metadata: {}
|
161
|
-
|
162
240
|
post_install_message:
|
163
241
|
rdoc_options:
|
164
242
|
- --charset=UTF-8 --main=README.md
|
165
243
|
require_paths:
|
166
244
|
- lib
|
167
245
|
required_ruby_version: !ruby/object:Gem::Requirement
|
246
|
+
none: false
|
168
247
|
requirements:
|
169
|
-
-
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
hash: 3
|
251
|
+
segments:
|
252
|
+
- 0
|
253
|
+
version: "0"
|
170
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
|
+
none: false
|
171
256
|
requirements:
|
172
|
-
-
|
257
|
+
- - ">="
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
hash: 3
|
260
|
+
segments:
|
261
|
+
- 0
|
262
|
+
version: "0"
|
173
263
|
requirements: []
|
174
264
|
|
175
265
|
rubyforge_project:
|
176
|
-
rubygems_version:
|
266
|
+
rubygems_version: 1.8.25
|
177
267
|
signing_key:
|
178
|
-
specification_version:
|
268
|
+
specification_version: 3
|
179
269
|
summary: A Ruby wrapper around the ATIS SOAP Interface
|
180
270
|
test_files: []
|
181
271
|
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
data.tar.gz: 0f2e6e69ee3558dbc0a72e9f59efc8360b576e42
|
4
|
-
metadata.gz: 9dbea42823b010445a18dc1e0335a4f62cbae8aa
|
5
|
-
SHA512:
|
6
|
-
data.tar.gz: deab67f3d48eeb0185500ed04bb77d9be7f5765e57b721fc218484f13ec754f0d9699bd11dffe38c7399c3a793798b4033dc407ee166467d2d52bb12e48521f7
|
7
|
-
metadata.gz: f26051bb556b4f2a43b3a8f5cec8d302422e4729fafd689f5725b853b48d5c8fb6092ce3e811d9edb05f3b80306501f9083792582c3d610acb145b7fcdd0c464
|