spbus 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/spbus/route.rb +0 -4
- data/lib/spbus/scrapers/route_details.rb +6 -0
- data/lib/spbus/version.rb +1 -1
- data/lib/spbus.rb +31 -10
- data/spec/scrapers/route_details_scraper_spec.rb +1 -1
- data/spec/spbus_spec.rb +20 -4
- data/spec/spec_helper.rb +2 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 223522ae47c316b251c39002868035c5a10f0894
|
4
|
+
data.tar.gz: 8316188c0e34cbe96f2f276ee1d3b13648527180
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1805270572c03a5ad144939f34bb61eb015aaafd6682161a126f22715bf55a509ac49e15b041f7686d78d24a84c89d8d6dd9d67d613295ef1d2da3fb5fed156a
|
7
|
+
data.tar.gz: dbf6f8f066d15f7166cd231b3253c2564631e8a4a1e9423be8c6c2a024cc9e37fb44c15510411a26214c3003570c806436d5264caf91459b48a94b6a6af2237f
|
data/lib/spbus/route.rb
CHANGED
data/lib/spbus/version.rb
CHANGED
data/lib/spbus.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "nokogiri"
|
2
2
|
require "open-uri"
|
3
3
|
require "json"
|
4
|
+
require "logger"
|
4
5
|
|
5
6
|
require "spbus/route"
|
6
7
|
require "spbus/bus"
|
@@ -14,18 +15,38 @@ require "spbus/version"
|
|
14
15
|
module SpBus
|
15
16
|
|
16
17
|
class UnknownResponse < StandardError ; end
|
18
|
+
class InvalidRoute < StandardError ; end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
class << self
|
21
|
+
|
22
|
+
attr_writer :logger
|
23
|
+
|
24
|
+
def logger
|
25
|
+
@logger ||= Logger.new(STDOUT)
|
26
|
+
end
|
27
|
+
|
28
|
+
def fetch_routes
|
29
|
+
scraper = Scrapers::Routes.new
|
30
|
+
scraper.fetch
|
31
|
+
|
32
|
+
scraper.routes.select do |route|
|
33
|
+
logger.info "Fetching details for route #{route.number}..."
|
34
|
+
|
35
|
+
begin
|
36
|
+
Scrapers::RouteDetails.new(route).fetch
|
37
|
+
true
|
38
|
+
rescue InvalidRoute
|
39
|
+
logger.warn "[INVALID ROUTE] #{route.number}"
|
40
|
+
false
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
24
44
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
45
|
+
def fetch_buses(destination_id)
|
46
|
+
scraper = Scrapers::Locations.new(destination_id)
|
47
|
+
scraper.fetch
|
48
|
+
scraper.buses
|
49
|
+
end
|
29
50
|
end
|
30
51
|
end
|
31
52
|
|
data/spec/spbus_spec.rb
CHANGED
@@ -10,17 +10,33 @@ describe SpBus do
|
|
10
10
|
let(:route2) { SpBus::Route.new("6450-10") }
|
11
11
|
let(:scraper) { double.as_null_object }
|
12
12
|
|
13
|
-
|
13
|
+
before do
|
14
14
|
allow_any_instance_of(SpBus::Scrapers::Routes).to receive(:fetch)
|
15
|
-
allow_any_instance_of(SpBus::Scrapers::Routes).to receive(:routes)
|
15
|
+
allow_any_instance_of(SpBus::Scrapers::Routes).to receive(:routes)
|
16
|
+
.and_return([route1, route2])
|
17
|
+
end
|
18
|
+
|
19
|
+
it "fetch route details for every route" do
|
20
|
+
expect(SpBus::Scrapers::RouteDetails).to receive(:new).with(route1)
|
21
|
+
.and_return(scraper)
|
16
22
|
|
17
|
-
expect(SpBus::Scrapers::RouteDetails).to receive(:new).with(
|
18
|
-
|
23
|
+
expect(SpBus::Scrapers::RouteDetails).to receive(:new).with(route2)
|
24
|
+
.and_return(scraper)
|
19
25
|
|
20
26
|
expect(scraper).to receive(:fetch).twice
|
21
27
|
|
22
28
|
expect(subject.fetch_routes).to eql([route1, route2])
|
23
29
|
end
|
30
|
+
|
31
|
+
it "does not return an invalid route" do
|
32
|
+
allow(SpBus::Scrapers::RouteDetails).to receive(:new)
|
33
|
+
.with(anything).and_return(scraper)
|
34
|
+
|
35
|
+
expect(scraper).to receive(:fetch).ordered.and_raise(SpBus::InvalidRoute)
|
36
|
+
expect(scraper).to receive(:fetch).ordered
|
37
|
+
|
38
|
+
expect(subject.fetch_routes).to eql([route2])
|
39
|
+
end
|
24
40
|
end
|
25
41
|
|
26
42
|
describe ".fetch_buses" do
|
data/spec/spec_helper.rb
CHANGED
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.4
|
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-
|
11
|
+
date: 2013-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
167
|
version: '0'
|
168
168
|
requirements: []
|
169
169
|
rubyforge_project:
|
170
|
-
rubygems_version: 2.0.
|
170
|
+
rubygems_version: 2.0.3
|
171
171
|
signing_key:
|
172
172
|
specification_version: 4
|
173
173
|
summary: A gem to easily retrieve information about São Paulo bus routes, numbers,
|