spbus 0.0.1 → 0.0.2
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/.gitignore +1 -0
- data/.travis.yml +8 -0
- data/README.md +5 -0
- data/lib/spbus/bus.rb +7 -0
- data/lib/spbus/locations.rb +37 -0
- data/lib/spbus/route.rb +10 -0
- data/lib/spbus/version.rb +1 -1
- data/lib/spbus.rb +2 -0
- data/spec/cassettes/SpBus_Locations/_fetch_locations/retrieves_all_buses_locations.yml +34 -0
- data/spec/cassettes/SpBus_Route/_to_h/returns_a_hash.yml +36 -0
- data/spec/locations_spec.rb +18 -0
- data/spec/route_spec.rb +16 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 721321499ae1d4ad22f3f61f5802e2872ebd0f9b
|
4
|
+
data.tar.gz: 9b936314c670942e1e5a8a770725267c48897a37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd2770c6723a184ab1bfe7abe5be0552f749f99dbc1563d8e037eb0a8d669dca810f20ee36168d486b5f7b1f0dc27db055249200d52a6471b5e283aaad7e5e0b
|
7
|
+
data.tar.gz: fe6ca2c698b0ea89f7cc02ea5d49fb44f814adad7e795489f02d09ce040e829b8c85416e3ea33b11d3d8813c1c8e0a0b378a915387caea55dd63d4698ea5e434
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
A gem to easily retrieve information about São Paulo bus routes, numbers,
|
4
4
|
location, etc using SPTrans web services.
|
5
5
|
|
6
|
+
[](https://codeclimate.com/github/lenon/spbus)
|
7
|
+
[](http://badge.fury.io/rb/spbus)
|
8
|
+
[](https://travis-ci.org/lenon/spbus)
|
9
|
+
|
10
|
+
|
6
11
|
## Installation
|
7
12
|
|
8
13
|
Add this line to your application's Gemfile:
|
data/lib/spbus/bus.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module SpBus
|
2
|
+
class Locations
|
3
|
+
BUSES_LOCATIONS = "http://200.189.189.54/InternetServices/PosicaoLinha"
|
4
|
+
|
5
|
+
attr_reader :buses
|
6
|
+
|
7
|
+
def initialize(route)
|
8
|
+
@route = route
|
9
|
+
end
|
10
|
+
|
11
|
+
def fetch_locations
|
12
|
+
sptrans_request
|
13
|
+
|
14
|
+
raise InconsistentResponse unless valid_response?
|
15
|
+
|
16
|
+
@buses = @response[:vs].collect do |hash|
|
17
|
+
SpBus::Bus.new(lat: hash[:py], long: hash[:px])
|
18
|
+
end
|
19
|
+
|
20
|
+
true
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def sptrans_request
|
26
|
+
@response = JSON.parse(
|
27
|
+
RestClient.get(BUSES_LOCATIONS, params: { codigoLinha: @route }),
|
28
|
+
symbolize_names: true
|
29
|
+
)[:PosicaoLinhaResult]
|
30
|
+
end
|
31
|
+
|
32
|
+
def valid_response?
|
33
|
+
!@response.nil? && !@response[:hr].nil? && !@response[:hr].empty?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
data/lib/spbus/route.rb
CHANGED
@@ -25,6 +25,16 @@ module SpBus
|
|
25
25
|
true
|
26
26
|
end
|
27
27
|
|
28
|
+
def to_h
|
29
|
+
{
|
30
|
+
number: number,
|
31
|
+
origin: origin,
|
32
|
+
destination: destination,
|
33
|
+
code_for_origin: code_for_origin,
|
34
|
+
code_for_destination: code_for_destination
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
28
38
|
private
|
29
39
|
|
30
40
|
def sptrans_request
|
data/lib/spbus/version.rb
CHANGED
data/lib/spbus.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://200.189.189.54/InternetServices/PosicaoLinha?codigoLinha=59
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Length:
|
22
|
+
- '101'
|
23
|
+
Content-Type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
Server:
|
26
|
+
- Microsoft-HTTPAPI/2.0
|
27
|
+
Date:
|
28
|
+
- Sun, 08 Sep 2013 02:41:33 GMT
|
29
|
+
body:
|
30
|
+
encoding: UTF-8
|
31
|
+
string: '{"PosicaoLinhaResult":{"hr":"23:41","vs":[{"a":true,"p":"72420","px":-46.735629,"py":-23.64352625}]}}'
|
32
|
+
http_version:
|
33
|
+
recorded_at: Sun, 08 Sep 2013 02:41:33 GMT
|
34
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://200.189.189.54/InternetServices/BuscaLinhasSIM?termosBusca=6450-10
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Length:
|
22
|
+
- '361'
|
23
|
+
Content-Type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
Server:
|
26
|
+
- Microsoft-HTTPAPI/2.0
|
27
|
+
Date:
|
28
|
+
- Sat, 07 Sep 2013 23:22:55 GMT
|
29
|
+
body:
|
30
|
+
encoding: UTF-8
|
31
|
+
string: '{"BuscaLinhasSIMResult":[{"Circular":false,"CodigoLinha":59,"DenominacaoTPTS":"TERM.
|
32
|
+
BANDEIRA","DenominacaoTSTP":"TERM. CAPELINHA","Informacoes":null,"Letreiro":"6450","Sentido":1,"Tipo":10},{"Circular":false,"CodigoLinha":32827,"DenominacaoTPTS":"TERM.
|
33
|
+
BANDEIRA","DenominacaoTSTP":"TERM. CAPELINHA","Informacoes":null,"Letreiro":"6450","Sentido":2,"Tipo":10}]}'
|
34
|
+
http_version:
|
35
|
+
recorded_at: Sat, 07 Sep 2013 23:22:54 GMT
|
36
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SpBus::Locations do
|
4
|
+
|
5
|
+
describe "#fetch_locations", :vcr do
|
6
|
+
|
7
|
+
subject { described_class.new("59") }
|
8
|
+
before { subject.fetch_locations }
|
9
|
+
|
10
|
+
it "retrieves all buses locations" do
|
11
|
+
expect(subject.buses).to have(1).item
|
12
|
+
expect(subject.buses.first).to be_kind_of(SpBus::Bus)
|
13
|
+
expect(subject.buses.first.lat).to eql(-23.64352625)
|
14
|
+
expect(subject.buses.first.long).to eql(-46.735629)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
data/spec/route_spec.rb
CHANGED
@@ -28,5 +28,21 @@ describe SpBus::Route do
|
|
28
28
|
expect(subject.destination).to eql("TERM. BANDEIRA")
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
32
|
+
describe "#to_h", :vcr do
|
33
|
+
|
34
|
+
subject { described_class.new("6450-10") }
|
35
|
+
before { subject.fetch_details }
|
36
|
+
|
37
|
+
it "returns a hash" do
|
38
|
+
expect(subject.to_h).to eql({
|
39
|
+
number: "6450-10",
|
40
|
+
origin: "TERM. CAPELINHA",
|
41
|
+
destination: "TERM. BANDEIRA",
|
42
|
+
code_for_origin: 59,
|
43
|
+
code_for_destination: 32827
|
44
|
+
})
|
45
|
+
end
|
46
|
+
end
|
31
47
|
end
|
32
48
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spbus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lenon Marcel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -117,22 +117,28 @@ extra_rdoc_files: []
|
|
117
117
|
files:
|
118
118
|
- .gitignore
|
119
119
|
- .rspec
|
120
|
+
- .travis.yml
|
120
121
|
- Gemfile
|
121
122
|
- LICENSE.txt
|
122
123
|
- README.md
|
123
124
|
- Rakefile
|
124
125
|
- example.rb
|
125
126
|
- lib/spbus.rb
|
127
|
+
- lib/spbus/bus.rb
|
126
128
|
- lib/spbus/crawler.rb
|
129
|
+
- lib/spbus/locations.rb
|
127
130
|
- lib/spbus/route.rb
|
128
131
|
- lib/spbus/version.rb
|
129
132
|
- spbus.gemspec
|
130
133
|
- spec/cassettes/SpBus_Crawler/_fetch_routes/returns_all_bus_routes.yml
|
131
134
|
- spec/cassettes/SpBus_Crawler/_fetch_routes/returns_creates_a_Route_object_for_every_found_route.yml
|
135
|
+
- spec/cassettes/SpBus_Locations/_fetch_locations/retrieves_all_buses_locations.yml
|
132
136
|
- spec/cassettes/SpBus_Route/_fetch_details/sets_destination_attribute.yml
|
133
137
|
- spec/cassettes/SpBus_Route/_fetch_details/sets_origin_attribute.yml
|
134
138
|
- spec/cassettes/SpBus_Route/_fetch_details/sets_route_position_codes.yml
|
139
|
+
- spec/cassettes/SpBus_Route/_to_h/returns_a_hash.yml
|
135
140
|
- spec/crawler_spec.rb
|
141
|
+
- spec/locations_spec.rb
|
136
142
|
- spec/route_spec.rb
|
137
143
|
- spec/spec_helper.rb
|
138
144
|
homepage: http://github.com/lenon/spbus
|
@@ -163,9 +169,12 @@ summary: A gem to easily retrieve information about São Paulo bus routes, numbe
|
|
163
169
|
test_files:
|
164
170
|
- spec/cassettes/SpBus_Crawler/_fetch_routes/returns_all_bus_routes.yml
|
165
171
|
- spec/cassettes/SpBus_Crawler/_fetch_routes/returns_creates_a_Route_object_for_every_found_route.yml
|
172
|
+
- spec/cassettes/SpBus_Locations/_fetch_locations/retrieves_all_buses_locations.yml
|
166
173
|
- spec/cassettes/SpBus_Route/_fetch_details/sets_destination_attribute.yml
|
167
174
|
- spec/cassettes/SpBus_Route/_fetch_details/sets_origin_attribute.yml
|
168
175
|
- spec/cassettes/SpBus_Route/_fetch_details/sets_route_position_codes.yml
|
176
|
+
- spec/cassettes/SpBus_Route/_to_h/returns_a_hash.yml
|
169
177
|
- spec/crawler_spec.rb
|
178
|
+
- spec/locations_spec.rb
|
170
179
|
- spec/route_spec.rb
|
171
180
|
- spec/spec_helper.rb
|