smtuc 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/lib/smtuc/stop.rb +46 -2
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4995e9c0da962a05500b58776c256e0b138733f2
|
4
|
+
data.tar.gz: 2cb8bf27264f28963780a3425c9ca251589e9075
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78437e6dea4b671a01d2bc4cf4f844e4a73ecf782688bbb6f74d32714c036274def01ebfeb0b3ad66e17d63dd2bce94acb6f19927c93ca1e71aeb0470ce98a61
|
7
|
+
data.tar.gz: 1a64cf37f113ad6727233609f51533be60ac8c4950cec208a2e87a4678776c814e599bed5303a115d7f5341b3932db0648112a8483d98df360027ebd7687b226
|
data/lib/smtuc/stop.rb
CHANGED
@@ -14,11 +14,55 @@ class SMTUC
|
|
14
14
|
@lon = attributes['CoordY']
|
15
15
|
end
|
16
16
|
|
17
|
+
# Because there's no real way through the API to get details on a specific
|
18
|
+
# stop, istead we grab all of the stops and filter by id.
|
19
|
+
#
|
20
|
+
# TODO: maybe there is a chance we can simply cache results locally,
|
21
|
+
# as stops don't even change that often.
|
22
|
+
def self.find(id)
|
23
|
+
all.select { |s| s.id == id }.first
|
24
|
+
end
|
25
|
+
|
17
26
|
# Returns a list of all known stops
|
18
27
|
def self.all
|
19
28
|
response = Faraday.get(API_URL + '/GetStops?oLat=40.20343598944182&oLon=-8.417298279776674&meters=99999999999')
|
20
|
-
|
21
|
-
|
29
|
+
JSON.parse(response.body).map { |stop| new(stop) }
|
30
|
+
end
|
31
|
+
|
32
|
+
# Returns a list of stops around a specific latitude and longitude.
|
33
|
+
# A radius can be specified. If it is not, it falls back to a default of 200m.
|
34
|
+
def self.by_location(lat, lon, radius = 200)
|
35
|
+
response = Faraday.get(API_URL + "/GetStops?oLat=#{lat}&oLon=#{lon}&meters=#{radius}")
|
36
|
+
JSON.parse(response.body).map { |stop| new(stop) }
|
37
|
+
end
|
38
|
+
|
39
|
+
def arrivals
|
40
|
+
response = Faraday.get(BASE_API_URL + '/NextArrivals/GetScheds?providerName=SMTUC&stopCode=SMTUC_' + id)
|
41
|
+
arrivals = JSON.parse(response.body)
|
42
|
+
|
43
|
+
# Response is normally an array that looks like this:
|
44
|
+
#
|
45
|
+
# [
|
46
|
+
# {"Key"=>1, "Value"=>["36", "Pr. República", "19"]},
|
47
|
+
# {"Key"=>2, "Value"=>["25T", "Beira Rio", "24"]}
|
48
|
+
# ]
|
49
|
+
#
|
50
|
+
# We map that to something a little friendlier that looks like this:
|
51
|
+
#
|
52
|
+
# [
|
53
|
+
# {
|
54
|
+
# line: "36",
|
55
|
+
# description: "Pr. República",
|
56
|
+
# minutes: 19
|
57
|
+
# }, (...)
|
58
|
+
# ]
|
59
|
+
arrivals.map do |l|
|
60
|
+
{
|
61
|
+
line: l['Value'][0],
|
62
|
+
description: l['Value'][1],
|
63
|
+
minutes: l['Value'][2].to_i
|
64
|
+
}
|
65
|
+
end
|
22
66
|
end
|
23
67
|
end
|
24
68
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smtuc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Oliveira
|
@@ -39,33 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.16'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '5.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '10.0'
|
69
69
|
description: A non-official gem on top of a non-fficial API to SMTUC
|
70
70
|
email: fred@helloform.com
|
71
71
|
executables: []
|
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
95
|
version: '0'
|
96
96
|
requirements: []
|
97
97
|
rubyforge_project:
|
98
|
-
rubygems_version: 2.6.
|
98
|
+
rubygems_version: 2.6.14
|
99
99
|
signing_key:
|
100
100
|
specification_version: 4
|
101
101
|
summary: SMTUC, the gem!
|