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 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