ttc-gps 0.2.0 → 0.4.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/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/ttc-gps/models.rb +48 -27
- data/lib/ttc-gps.rb +2 -2
- data/ttc-gps.gemspec +4 -1
- metadata +17 -3
data/Rakefile
CHANGED
@@ -12,6 +12,7 @@ begin
|
|
12
12
|
gem.authors = ["Scott Hyndman"]
|
13
13
|
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
14
14
|
gem.add_development_dependency "geokit", ">= 0"
|
15
|
+
gem.add_development_dependency "json", ">= 0"
|
15
16
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
17
|
end
|
17
18
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/lib/ttc-gps/models.rb
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'geokit'
|
3
|
-
|
4
1
|
# Extensions to Geokit.
|
5
2
|
module Geokit
|
6
3
|
class Bounds
|
@@ -16,6 +13,22 @@ module Geokit
|
|
16
13
|
ne.lon = ne.lon + units
|
17
14
|
ne.lng = ne.lng + units
|
18
15
|
end
|
16
|
+
|
17
|
+
def to_json *args
|
18
|
+
{
|
19
|
+
'sw' => @sw,
|
20
|
+
'ne' => @ne
|
21
|
+
}.to_json(*args)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class LatLng
|
26
|
+
def to_json *args
|
27
|
+
{
|
28
|
+
'lat' => @lat,
|
29
|
+
'lng' => @lng
|
30
|
+
}.to_json(*args)
|
31
|
+
end
|
19
32
|
end
|
20
33
|
end
|
21
34
|
|
@@ -23,9 +36,17 @@ module TTC
|
|
23
36
|
# <vehicle lon='-79.3582' secsSinceReport='7' predictable='true' speedKmHr='0.0' dirTag='504_westbound' id='4142' heading='54' lat='43.677082' routeTag='504'/>
|
24
37
|
class Vehicle
|
25
38
|
attr_accessor :id, :route, :position, :heading, :dir, :secs_since_report, :predictable
|
26
|
-
|
27
|
-
def
|
28
|
-
|
39
|
+
|
40
|
+
def to_json *args
|
41
|
+
{
|
42
|
+
'id' => @id,
|
43
|
+
'route' => @route,
|
44
|
+
'position' => @position,
|
45
|
+
'heading' => @heading,
|
46
|
+
'dir' => @dir,
|
47
|
+
'secs_since_report' => @secs_since_report,
|
48
|
+
'predictable' => @predictable
|
49
|
+
}.to_json(*args)
|
29
50
|
end
|
30
51
|
|
31
52
|
# Parses an XML element into a Vehicle instance
|
@@ -35,11 +56,7 @@ module TTC
|
|
35
56
|
v = Vehicle.new
|
36
57
|
v.id = attrs["id"]
|
37
58
|
v.route = attrs["routeTag"]
|
38
|
-
|
39
|
-
lon = Float(attrs["lon"])
|
40
|
-
lat = Float(attrs["lat"])
|
41
|
-
v.position = Geokit::LatLng.new(lat, lon)
|
42
|
-
|
59
|
+
v.position = Geokit::LatLng.new(Float(attrs["lat"]), Float(attrs["lon"]))
|
43
60
|
v.heading = Float(attrs["heading"])
|
44
61
|
v.dir = attrs["dirTag"]
|
45
62
|
v.secs_since_report = Integer(attrs["secsSinceReport"])
|
@@ -86,8 +103,15 @@ module TTC
|
|
86
103
|
get_closest_stops[0]
|
87
104
|
end
|
88
105
|
|
89
|
-
|
90
|
-
|
106
|
+
#:tag, :title, :bounds, :stop_map, :directions
|
107
|
+
|
108
|
+
def to_json *args
|
109
|
+
{
|
110
|
+
'tag' => @tag,
|
111
|
+
'title' => @title,
|
112
|
+
'bounds' => @bounds,
|
113
|
+
'directions' => @directions
|
114
|
+
}.to_json(*args)
|
91
115
|
end
|
92
116
|
|
93
117
|
def Route.parse_element element
|
@@ -96,16 +120,9 @@ module TTC
|
|
96
120
|
r = Route.new
|
97
121
|
r.tag = attrs["tag"]
|
98
122
|
r.title = attrs["title"]
|
99
|
-
|
100
|
-
lat_min = Float(attrs["latMin"])
|
101
|
-
lat_max = Float(attrs["latMax"])
|
102
|
-
lon_min = Float(attrs["lonMin"])
|
103
|
-
lon_max = Float(attrs["lonMax"])
|
104
|
-
|
105
123
|
r.bounds = Geokit::Bounds.new(
|
106
|
-
Geokit::LatLng.new(
|
107
|
-
Geokit::LatLng.new(
|
108
|
-
|
124
|
+
Geokit::LatLng.new(Float(attrs["latMin"]), Float(attrs["lonMin"])),
|
125
|
+
Geokit::LatLng.new(Float(attrs["latMax"]), Float(attrs["lonMax"])))
|
109
126
|
r
|
110
127
|
end
|
111
128
|
end
|
@@ -114,8 +131,14 @@ module TTC
|
|
114
131
|
class Stop
|
115
132
|
attr_accessor :id, :title, :position, :dir, :tag
|
116
133
|
|
117
|
-
def
|
118
|
-
|
134
|
+
def to_json *args
|
135
|
+
{
|
136
|
+
'id' => @id,
|
137
|
+
'title' => @title,
|
138
|
+
'position' => @position,
|
139
|
+
'dir' => @dir,
|
140
|
+
'tag' => @tag
|
141
|
+
}.to_json(*args)
|
119
142
|
end
|
120
143
|
|
121
144
|
# Parses an XML element into a Stop instance
|
@@ -125,9 +148,7 @@ module TTC
|
|
125
148
|
s = Stop.new
|
126
149
|
s.id = attrs["stopId"]
|
127
150
|
s.title = attrs["title"]
|
128
|
-
|
129
|
-
lon = Float(attrs["lon"])
|
130
|
-
s.position = Geokit::LatLng.new(lat, lon)
|
151
|
+
s.position = Geokit::LatLng.new(Float(attrs["lat"]), Float(attrs["lon"]))
|
131
152
|
s.dir = attrs["dirTag"]
|
132
153
|
s.tag = attrs["tag"]
|
133
154
|
s
|
data/lib/ttc-gps.rb
CHANGED
data/ttc-gps.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ttc-gps}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Scott Hyndman"]
|
@@ -49,13 +49,16 @@ Gem::Specification.new do |s|
|
|
49
49
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
50
50
|
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
51
51
|
s.add_development_dependency(%q<geokit>, [">= 0"])
|
52
|
+
s.add_development_dependency(%q<json>, [">= 0"])
|
52
53
|
else
|
53
54
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
54
55
|
s.add_dependency(%q<geokit>, [">= 0"])
|
56
|
+
s.add_dependency(%q<json>, [">= 0"])
|
55
57
|
end
|
56
58
|
else
|
57
59
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
58
60
|
s.add_dependency(%q<geokit>, [">= 0"])
|
61
|
+
s.add_dependency(%q<json>, [">= 0"])
|
59
62
|
end
|
60
63
|
end
|
61
64
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ttc-gps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 4
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Scott Hyndman
|
@@ -46,6 +46,20 @@ dependencies:
|
|
46
46
|
version: "0"
|
47
47
|
type: :development
|
48
48
|
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: json
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
49
63
|
description: Uses NextBus data.
|
50
64
|
email: scotty.hyndman@gmail.com
|
51
65
|
executables: []
|