dvb 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dvb.gemspec +1 -0
- data/lib/dvb/find.rb +12 -5
- data/lib/dvb/utils.rb +10 -0
- data/lib/dvb/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddd265ca2116093196f9fe128013800e1b0635f1
|
4
|
+
data.tar.gz: f6b1382293357803a65b1b586537b78fec89326d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 044a90608b3519ff5f9da371d34f73678506ce7a4677ef5c3a23a9d123f65b0507cb0087c3bbdf8ddbf7663e8ca324e36e89f0549366f92f7bfd020d4183318a
|
7
|
+
data.tar.gz: 5fa81b0b095b1233f32cc46485b4a8bb3b28c95a8f4562f210eb4baa2bf1e96a1009659a93142486643511b3ab2567df1db4629bdaee45aaa179bc37175bd23a
|
data/dvb.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
22
|
spec.add_runtime_dependency 'rest-client', '~> 2.0'
|
23
|
+
spec.add_runtime_dependency 'geokit', '~> 1.10'
|
23
24
|
|
24
25
|
spec.add_development_dependency 'bundler', '~> 1.12'
|
25
26
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/lib/dvb/find.rb
CHANGED
@@ -6,13 +6,18 @@ module DVB
|
|
6
6
|
search_str.downcase!
|
7
7
|
(stop.name.downcase.include?(search_str) || stop.search_str.downcase.include?(search_str)) && stop.region == region
|
8
8
|
end
|
9
|
-
#
|
9
|
+
# The following would theoretically make sense, if priority values weren't so weird...
|
10
10
|
# all_stops.sort_by { |s| s.priority }.reverse
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
def self.find_near(lat, lng, radius = 500)
|
14
|
+
# Unfortunately some stops (exactly 100 of 4480) don't have location data associated with them
|
15
|
+
# Filtering those out here, as they're not relevant for location-based searching
|
16
|
+
all_stops = load_local_stops.reject { |s| s.lat.nil? || s.lng.nil? }
|
17
|
+
all_stops.select do |stop|
|
18
|
+
DVB::distance_between(stop.lat, stop.lng, lat, lng) <= radius
|
19
|
+
end
|
20
|
+
end
|
16
21
|
|
17
22
|
def self.load_local_stops
|
18
23
|
path = File.expand_path(File.dirname(__FILE__)) + '/VVOStops.json'
|
@@ -34,7 +39,9 @@ module DVB
|
|
34
39
|
end
|
35
40
|
|
36
41
|
def self.with_str_hash(h)
|
37
|
-
|
42
|
+
lat = h['latitude'] == '999.999999' ? nil : h['latitude'].to_f
|
43
|
+
lng = h['longitude'] == '999.999999' ? nil : h['longitude'].to_f
|
44
|
+
Stop.new(h['id'], lat, lng, h['name'], h['priority'].to_i, h['region'], h['searchstring'], h['tarif_zones'])
|
38
45
|
end
|
39
46
|
|
40
47
|
def coords
|
data/lib/dvb/utils.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'geokit'
|
2
|
+
Geokit::default_units = :kms
|
3
|
+
|
1
4
|
module DVB
|
2
5
|
|
3
6
|
def self.parse_mode(mode)
|
@@ -68,6 +71,13 @@ module DVB
|
|
68
71
|
}
|
69
72
|
end
|
70
73
|
|
74
|
+
def self.distance_between(lat1, lng1, lat2, lng2)
|
75
|
+
point1 = Geokit::LatLng.new(lat1, lng1)
|
76
|
+
point2 = Geokit::LatLng.new(lat2, lng2)
|
77
|
+
|
78
|
+
point1.distance_to(point2) * 1000
|
79
|
+
end
|
80
|
+
|
71
81
|
end
|
72
82
|
|
73
83
|
class String
|
data/lib/dvb/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dvb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kilian Koeltzsch
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: geokit
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.10'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.10'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|