ratis 2.5.2.8 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|