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 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
@@ -1,41 +1,44 @@
1
1
  module Ratis
2
-
3
2
  class ClosestStop
4
3
 
5
4
  def self.where(conditions)
6
- latitude = conditions.delete :latitude
7
- longitude = conditions.delete :longitude
5
+ latitude = conditions.delete :latitude
6
+ longitude = conditions.delete :longitude
8
7
  location_text = conditions.delete :location_text
9
- num_stops = conditions.delete :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') unless 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
- {'Locationlat' => latitude, 'Locationlong' => longitude, 'Locationtext' => location_text, 'Numstops' => num_stops}
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 |s|
22
- next if s[:description].blank?
23
-
24
- stop = Stop.new
25
- stop.walk_dist = s[:walkdist]
26
- stop.description = s[:description]
27
- stop.stop_id = s[:stopid]
28
- stop.atis_stop_id = s[:atisstopid]
29
- stop.latitude = s[:lat]
30
- stop.longitude = s[:long]
31
- stop.walk_dir = s[:walkdir]
32
- stop.side = s[:side]
33
- stop.heading = s[:heading]
34
- stop.stop_position = s[:stopposition]
35
- stop.route_dir = s[:routedirs][:routedir]
36
- stop
37
- end
38
- stops.compact
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
@@ -0,0 +1,7 @@
1
+ module Ratis
2
+
3
+ class Pattern::RouteInfo
4
+ attr_accessor :route, :headsign, :operate, :effective, :routeid, :routetype, :tripcount, :school
5
+ end
6
+
7
+ end
@@ -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 = atis_stop_from_hash 'on', group[:onstop]
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 = Point2Point::Trip.new
77
- atis_trip.on_time = trip[:ontime]
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 = Point2Point::Service.new
82
+ atis_service = Point2Point::Service.new
82
83
 
83
- atis_service.route = service[:route]
84
- atis_service.direction = 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 = service[:signage]
87
- atis_service.route_type = service[:routetype]
88
- atis_service.exception = 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 = Point2Point::Stop.new
105
- atis_stop.description = 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 = stop[:lat].to_f
108
- atis_stop.longitude = stop[:long].to_f
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 = stop["#{prefix}walkdir".to_sym]
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
@@ -12,7 +12,7 @@ module Ratis
12
12
  atis_routes = routes.map do |r|
13
13
  r.strip!
14
14
  next if r.blank?
15
- r = r.split(/, /)
15
+ r = r.split(/,/)
16
16
  Route.new r[0].strip, r[1..-1].map(&:strip)
17
17
  end
18
18
  atis_routes.compact
@@ -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
@@ -0,0 +1,7 @@
1
+ module Ratis
2
+
3
+ class RoutePattern::Point
4
+ attr_accessor :lat, :lng
5
+ end
6
+
7
+ end
@@ -0,0 +1,7 @@
1
+ module Ratis
2
+
3
+ class RoutePattern::Stop
4
+ attr_accessor :desc, :area, :stopid, :atisid, :point, :lat, :lng, :boardflag, :timepoint
5
+ end
6
+
7
+ end
@@ -9,32 +9,34 @@ module Ratis
9
9
  class RouteStops
10
10
 
11
11
  def self.all(conditions)
12
- route = conditions.delete :route
13
- direction = conditions.delete(:direction).to_s.upcase
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') unless 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 = s[:description]
30
- stop.area = s[:area]
31
- stop.atis_stop_id = s[:atisstopid]
32
- stop.stop_seq = s[:stopseq]
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 = 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'
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
- {'Locationlat' => latitude, 'Locationlong' => longitude,
29
- 'Date' => date, 'Time' => time, 'Window' => window, 'Walkdist' => walk_distance,
30
- 'Landmarkid' => landmark_id, 'Stopid' => stop_id, 'Appid' => app_id
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
@@ -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
- headway[:timepoints][:stop].each_with_index{|tp, i| timepoints_array.push(Timetable::Stop.new(i, tp[:atisstopid], tp[:stopid], tp[:description], tp[:area]) )} rescue []
35
- timetable.timepoints = timepoints_array
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
- headway[:times][:trip].each_with_index{|t,i| trips_array.push(Timetable::Trip.new(i, t[:time], t[:comment]))} rescue []
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 = '2.5.2.8'
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
- version: 2.5.2.8
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-04-15 00:00:00 Z
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
- - &id004
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
- - *id004
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: webmock
94
+ name: hashdiff
56
95
  prerelease: false
57
96
  requirement: &id006 !ruby/object:Gem::Requirement
97
+ none: false
58
98
  requirements:
59
- - *id004
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: hashdiff
108
+ name: bundler
64
109
  prerelease: false
65
110
  requirement: &id007 !ruby/object:Gem::Requirement
111
+ none: false
66
112
  requirements:
67
- - *id004
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: bundler
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
- version: 1.0.0
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: yard
138
+ name: redcarpet
82
139
  prerelease: false
83
140
  requirement: &id009 !ruby/object:Gem::Requirement
141
+ none: false
84
142
  requirements:
85
- - *id004
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: redcarpet
152
+ name: rake
90
153
  prerelease: false
91
154
  requirement: &id010 !ruby/object:Gem::Requirement
155
+ none: false
92
156
  requirements:
93
- - *id004
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: rake
166
+ name: vcr
98
167
  prerelease: false
99
168
  requirement: &id011 !ruby/object:Gem::Requirement
169
+ none: false
100
170
  requirements:
101
- - *id004
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: vcr
180
+ name: ruby-debug
106
181
  prerelease: false
107
182
  requirement: &id012 !ruby/object:Gem::Requirement
183
+ none: false
108
184
  requirements:
109
- - *id004
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
- - *id004
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
- - *id004
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: 2.0.3
266
+ rubygems_version: 1.8.25
177
267
  signing_key:
178
- specification_version: 4
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