spbus 0.0.2 → 0.0.3
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/example.rb +14 -18
- data/lib/spbus/bus.rb +2 -3
- data/lib/spbus/request.rb +31 -0
- data/lib/spbus/route.rb +6 -40
- data/lib/spbus/scrapers/locations.rb +48 -0
- data/lib/spbus/scrapers/route_details.rb +56 -0
- data/lib/spbus/scrapers/routes.rb +74 -0
- data/lib/spbus/version.rb +1 -1
- data/lib/spbus.rb +23 -5
- data/spbus.gemspec +1 -1
- data/spec/bus_spec.rb +12 -0
- data/spec/cassettes/auth_request.yml +278 -0
- data/spec/cassettes/{SpBus_Crawler/_fetch_routes/returns_all_bus_routes.yml → bus_routes.yml} +26269 -26401
- data/spec/cassettes/buses_locations.yml +276 -0
- data/spec/cassettes/invalid_route_detail.yml +276 -0
- data/spec/cassettes/normal_request.yml +136 -0
- data/spec/cassettes/normal_route_detail.yml +278 -0
- data/spec/cassettes/one_way_route_detail.yml +278 -0
- data/spec/request_spec.rb +39 -0
- data/spec/route_spec.rb +23 -32
- data/spec/scrapers/locations_scraper_spec.rb +24 -0
- data/spec/scrapers/route_details_scraper_spec.rb +68 -0
- data/spec/scrapers/routes_scraper_spec.rb +30 -0
- data/spec/spbus_spec.rb +40 -0
- data/spec/spec_helper.rb +1 -1
- metadata +35 -25
- data/lib/spbus/crawler.rb +0 -52
- data/lib/spbus/locations.rb +0 -37
- data/spec/cassettes/SpBus_Crawler/_fetch_routes/returns_creates_a_Route_object_for_every_found_route.yml +0 -32809
- data/spec/cassettes/SpBus_Locations/_fetch_locations/retrieves_all_buses_locations.yml +0 -34
- data/spec/cassettes/SpBus_Route/_fetch_details/sets_destination_attribute.yml +0 -36
- data/spec/cassettes/SpBus_Route/_fetch_details/sets_origin_attribute.yml +0 -36
- data/spec/cassettes/SpBus_Route/_fetch_details/sets_route_position_codes.yml +0 -36
- data/spec/cassettes/SpBus_Route/_to_h/returns_a_hash.yml +0 -36
- data/spec/crawler_spec.rb +0 -20
- data/spec/locations_spec.rb +0 -18
@@ -0,0 +1,278 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://olhovivo.sptrans.com.br/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- '*/*'
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- private
|
23
|
+
Content-Type:
|
24
|
+
- text/html; charset=utf-8
|
25
|
+
Server:
|
26
|
+
- Microsoft-IIS/7.5
|
27
|
+
X-Frame-Options:
|
28
|
+
- DENY
|
29
|
+
X-Aspnetmvc-Version:
|
30
|
+
- '4.0'
|
31
|
+
X-Aspnet-Version:
|
32
|
+
- 4.0.30319
|
33
|
+
Set-Cookie:
|
34
|
+
- apiCredentials-v0=2D68289695D6BAFE7993876095B8D9FA55CF1477117AC5AC8F5A703ED0FED7EC3A8DD63DDEE53290BA788C0F1105AADA11F614194D877D3AEF36B1E083A59AB22C1EACD18AF5224159E5C131E08299C88A5BEE5D4BA9BF44B1790B0AF01EA0B41D1545F6E29672E98380C9964A976DE9E2B38EC3A0946B83B17AE653D40194BFC19F51A6B73815CA341A655DCB4D9ACC6FD4061581ABC33EE9B9252DB57C3146AD3BC3E19BD2E23BE8FE4CA07772FF764AE94CD0EEE8317FDD18CF6DD31742E0F723A879B2020A4CCC07E768034A4C58;
|
35
|
+
path=/; HttpOnly
|
36
|
+
X-Powered-By:
|
37
|
+
- ASP.NET
|
38
|
+
Date:
|
39
|
+
- Thu, 26 Sep 2013 04:24:13 GMT
|
40
|
+
Content-Length:
|
41
|
+
- '8223'
|
42
|
+
body:
|
43
|
+
encoding: ASCII-8BIT
|
44
|
+
string: !binary |-
|
45
|
+
PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBpZD0iaHRtbFRhZyIgZGlyPSJsdHIi
|
46
|
+
IGxhbmc9InB0LWJyIj4NCjxoZWFkIGlkPSJodG1sV2ViSGVhZGVyIj4NCiAg
|
47
|
+
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
|
48
|
+
LXdpZHRoLCBtaW5pbXVtLXNjYWxlPTEsIGluaXRpYWwtc2NhbGU9MS4wLCB1
|
49
|
+
c2VyLXNjYWxhYmxlPW5vIiAvPg0KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0
|
50
|
+
aW9uIiBjb250ZW50PSJPbGhvIFZpdm8gU1BUcmFuczogTm92byBzaXN0ZW1h
|
51
|
+
IGRlIGFwcm94aW1hw6fDo28gZSBsb2NhbGl6YcOnw6NvIG9ubGluZSBkb3Mg
|
52
|
+
w7RuaWJ1cyBkYSBjaWRhZGUgZGUgU8OjbyBQYXVsby4iIC8+DQogICAgPG1l
|
53
|
+
dGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9InByZXZpc8OjbywgbG9jYWxp
|
54
|
+
emHDp8OjbywgZ3BzLCDDtG5pYnVzLCBvbmlidXMsIGNvbmR1w6fDo28sIHNw
|
55
|
+
dHJhbnMsIHNwIHRyYW5zLCBzw6NvIHBhdWxvLCBwYXJhZGFzLCBwb250b3Ms
|
56
|
+
IG1hcGEsIGNhbWluaG8sIHDDumJsaWNvIiAvPg0KICAgIDxtZXRhIG5hbWU9
|
57
|
+
ImNvcHlyaWdodCIgY29udGVudD0iQ29weXJpZ2h0IDIwMTIgU8OjbyBQYXVs
|
58
|
+
byBUcmFuc3BvcnRlIFMvQS4gVG9kb3Mgb3MgZGlyZWl0b3MgcmVzZXJ2YWRv
|
59
|
+
cy4iLz4NCiAgICANCg0KICAgICAgICANCiAgICA8dGl0bGU+T2xobyBWaXZv
|
60
|
+
IFNQVHJhbnM8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNv
|
61
|
+
biIgaHJlZj0iL0NvbnRlbnQvdGhlbWUvaW1hZ2Vucy9pY29uZXMvZmF2aWNv
|
62
|
+
bi5pY28iIC8+DQogICAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvQ29udGVu
|
63
|
+
dC90aGVtZS9pbWFnZW5zL2ljb25lcy9mYXZpY29uLmljbyIgLz4NCiAgICA8
|
64
|
+
bGluayBocmVmPSIvQ29udGVudC90aGVtZS9vbGhvdml2bz92PWRlODNWbXhD
|
65
|
+
ZVJDZjBoRV9BWHFpRDh0MHVQQi10bjB6RkJwUXRneWs3Q3MxIiByZWw9InN0
|
66
|
+
eWxlc2hlZXQiLz4NCg0KICAgIA0KICAgIDxsaW5rIGhyZWY9Ii9Db250ZW50
|
67
|
+
L3RoZW1lL29saG92aXZvZGVza3RvcD92PWh6VlZjd3ZLc0N2UHZoRk9aMmxT
|
68
|
+
c1RiQlctUEd2S29wbUw2cmxpRGxybEExIiByZWw9InN0eWxlc2hlZXQiLz4N
|
69
|
+
Cg0KPGxpbmsgaHJlZj0iL0NvbnRlbnQvdGhlbWUvb2xob3Zpdm9OT05JRT92
|
70
|
+
PVllbUhjbzkwd2hKbFo0YXV0RG1qUXZpYVFaMnRiRmYwX1g1NE45M3AyVkkx
|
71
|
+
IiByZWw9InN0eWxlc2hlZXQiLz4NCg0KICAgICAgICANCiAgICA8c2NyaXB0
|
72
|
+
IHNyYz0iaHR0cDovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanM/
|
73
|
+
c2Vuc29yPXRydWUmcmVnaW9uPUJSIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0
|
74
|
+
PiB2YXIgX19jcF9fID0gIi8iOyA8L3NjcmlwdD4NCiAgICA8c2NyaXB0IHNy
|
75
|
+
Yz0iL2Ivb2xob3Zpdm8/dj1MengyYVZOZlJnamRJdHV6eVlRU29tTmJkZ3N0
|
76
|
+
Q0ZqNGJWc3dLTkc2bUIwMSI+PC9zY3JpcHQ+DQoNCiAgICANCiAgICAgICAg
|
77
|
+
ICAgIDxzY3JpcHQgc3JjPSIvYi9qcXVlcnlGbGFzaD92PVRCcW9QNEZVR0Jw
|
78
|
+
Z19YbjgwTFdXYkFOVmp5R2puRkQ0UmptMDluNFJXVWsxIj48L3NjcmlwdD4N
|
79
|
+
Cg0KICAgIDxzY3JpcHQ+dmFyIHBhc3NvYXBhc3NvT2xob05hVmlhID0gJy9N
|
80
|
+
YW51YWxEZU9saG9OYVZpYSc7PC9zY3JpcHQ+DQoNCiAgICAgICAgDQo8L2hl
|
81
|
+
YWQ+IA0KDQo8Ym9keT4NCjxkaXYgaWQ9InBhZ2VQcmV2aXNhbyIgZGF0YS1y
|
82
|
+
b2xlPSJwYWdlIiBkYXRhLXRoZW1lPSJzIiBzdHlsZT0ibWluLWhlaWdodDox
|
83
|
+
MDAlIj4NCiAgICANCiAgICA8ZGl2IGRhdGEtcm9sZT0iY29udGVudCIgaWQ9
|
84
|
+
InByaUNvbnRlbnQiPgkNCjxkaXYgY2xhc3M9ImNvbnRlbnQtc2Vjb25kYXJ5
|
85
|
+
IiBpZD0id2ViVG9wQ29udGVudCI+DQoJPGRpdiBjbGFzcz0iaGVhZGVyV2Vi
|
86
|
+
IGJnSGVhZGVyV2ViIj4NCgkJPGgxPk9saG8gVml2byBTUFRyYW5zIC0gTG9j
|
87
|
+
YWxpemHDp8OjbyBlIEFwcm94aW1hw6fDo28gZGUgw5RuaWJ1czwvaDE+DQog
|
88
|
+
ICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlck1lbnNhZ2VtIj4NCiAgICAgICAg
|
89
|
+
ICAgIDxiPlByb2dyYW1lLXNlIGFudGVzIGRlIHNhaXIuPC9iPjxiciAvPlNh
|
90
|
+
aWJhIDxiPnF1YW5kbzwvYj4gbyBwcsOzeGltbyDDtG5pYnVzIDxiPnBvZGVy
|
91
|
+
w6EgcGFzc2FyPC9iPiwgYSA8Yj52ZWxvY2lkYWRlPC9iPiBlIG8gPGI+dGVt
|
92
|
+
cG8gZGUgdmlhZ2VtPC9iPiBub3MgcHJpbmNpcGFpcyBjb3JyZWRvcmVzIGRh
|
93
|
+
IGNpZGFkZS4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9Imxv
|
94
|
+
Z29TaWdhVHd0IiB0aXRsZT0iU2lnYSBhIFNQVHJhbnMgbm8gVHdpdHRlciI+
|
95
|
+
Jm5ic3A7PC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJ0RG93bmxvYWRHdWlh
|
96
|
+
Ij48YSBocmVmPSIvZmlsZXMvVHV0b3JpYWxOb3ZvT2xob1Zpdm8ucGRmIiB0
|
97
|
+
YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkFjZXNzZSBvIGd1aWEgZGUgdXRpbGl6
|
98
|
+
YcOnw6NvIj5BY2Vzc2UgbyA8Yj5ndWlhIGRlIHV0aWxpemHDp8OjbzwvYj48
|
99
|
+
L2E+PC9kaXY+DQoNCgkJPGRpdiBjbGFzcz0idWktZ3JpZC1iIj4NCgkJCTxk
|
100
|
+
aXYgY2xhc3M9ImhCbG9jayB1aS1ibG9jay1hIj4NCiAgICAgICAgICAgICAg
|
101
|
+
ICA8ZGl2IGNsYXNzPSJ0aXR1bG8gdGl0dWxvLWxpbmhhIj4mbmJzcDs8L2Rp
|
102
|
+
dj4NCiAgICAgICAgICAgICAgICA8YSBpZD0iYnREZU9saG9MaW5oYSIgY2xh
|
103
|
+
c3M9ImNvbnRldWRvIiBocmVmPSIjdHhTZWFyY2hMaW5oYSIgZGF0YS1yb2xl
|
104
|
+
PSJidXR0b24iPg0KICAgICAgICAgICAgICAgIDxiPkxvY2FsaXphw6fDo28g
|
105
|
+
ZG9zIMO0bmlidXM8L2I+PGJyIC8+DQogICAgICAgICAgICAgICAgQ29uc3Vs
|
106
|
+
dGUsIGFvIGxvbmdvIGRvIHRyYWpldG8gZGUgc3VhIGxpbmhhLCBvbmRlIGVz
|
107
|
+
dMOjbyBvcyDDtG5pYnVzIHF1ZSBwb2RlcsOjbyBhdGVuZMOqLWxvLg0KICAg
|
108
|
+
ICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDwvZGl2Pg0KCQkJPGRp
|
109
|
+
diBjbGFzcz0iaEJsb2NrIHVpLWJsb2NrLWIiPg0KICAgICAgICAgICAgICAg
|
110
|
+
IDxkaXYgY2xhc3M9InRpdHVsbyB0aXR1bG8tcG9udG8iPiZuYnNwOzwvZGl2
|
111
|
+
Pg0KICAgICAgICAgICAgICAgIDxhIGlkPSJidERlT2xob1BvbnRvIiBjbGFz
|
112
|
+
cz0iY29udGV1ZG8iIGhyZWY9IiN0eFNlYXJjaFBhcmFkYSIgZGF0YS1yb2xl
|
113
|
+
PSJidXR0b24iPg0KICAgICAgICAgICAgICAgIDxiPlByw7N4aW1vcyDDtG5p
|
114
|
+
YnVzPC9iPjxiciAvPg0KICAgICAgICAgICAgICAgIFNhaWJhIGVtIHF1YW50
|
115
|
+
byB0ZW1wbyBlIHF1YWlzIGxpbmhhcyBkZSDDtG5pYnVzIHNlIGFwcm94aW1h
|
116
|
+
bSBkbyBwb250byBxdWUgdm9jw6ogZXN0w6Egb3UgaXLDoSB1dGlsaXphciBl
|
117
|
+
bSB1bSBkb3MgY29ycmVkb3JlcyBkZSDDtG5pYnVzLg0KICAgICAgICAgICAg
|
118
|
+
ICAgIDwvYT4NCiAgICAgICAgICAgIDwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0i
|
119
|
+
aEJsb2NrIHVpLWJsb2NrLWMiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xh
|
120
|
+
c3M9InRpdHVsbyB0aXR1bG8tdmlhIj4mbmJzcDs8L2Rpdj4NCiAgICAgICAg
|
121
|
+
ICAgICAgICA8YSBjbGFzcz0iY29udGV1ZG8iIGhyZWY9IiNwRGVPbGhvVmlh
|
122
|
+
IiBkYXRhLXJvbGU9ImJ1dHRvbiI+DQogICAgICAgICAgICAgICAgPGI+VmVs
|
123
|
+
b2NpZGFkZSBtw6lkaWEgZSB0ZW1wbyBkZSBwZXJjdXJzbzwvYj48YnIgLz4N
|
124
|
+
CiAgICAgICAgICAgICAgICBWZWphIGNvbW8gZXN0w6EgbyBkZXNlbXBlbmhv
|
125
|
+
IGRvcyBwcmluY2lwYWlzIGNvcnJlZG9yZXMgdmnDoXJpb3MgZGEgY2lkYWRl
|
126
|
+
Lg0KICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDwvZGl2Pg0K
|
127
|
+
CQk8L2Rpdj4NCg0KCTwvZGl2Pg0KPC9kaXY+ICAgICAgICA8ZGl2IGNsYXNz
|
128
|
+
PSJjb250ZW50LXByaW1hcnkgYXBwQ29udGVudCI+DQogICAgICAgICAgICA8
|
129
|
+
dWwgZGF0YS1yb2xlPSJsaXN0dmlldyIgZGF0YS1pbnNldD0idHJ1ZSIgZGF0
|
130
|
+
YS10aGVtZT0icyI+DQogICAgICAgICAgICAgICAgPGxpIGRhdGEtcm9sZT0i
|
131
|
+
bGlzdC1kaXZpZGVyIiBpZD0ibGJsVGl0dWxvQ29uc3VsdGFIb21lIj4mbmJz
|
132
|
+
cDs8L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIDxkaXYg
|
133
|
+
aWQ9ImJvdG9lc1Blc3F1aXNhSW5pY2lhbCI+DQoJCQkgICAgPGRpdiBjbGFz
|
134
|
+
cz0idWktZ3JpZC1hIj4NCgkJCQkgICAgPGRpdiBjbGFzcz0idWktYmxvY2st
|
135
|
+
YSI+DQoJCQkJCSAgICA8aW5wdXQgdHlwZT0ic2VhcmNoIiBpZD0idHhTZWFy
|
136
|
+
Y2hMaW5oYSIgcGxhY2Vob2xkZXI9IkJ1c2NhIHBvciBMaW5oYXMiIHRpdGxl
|
137
|
+
PSJCdXNjYSBwb3IgTGluaGFzIiBtYXhsZW5ndGg9IjM2IiAvPg0KCQkJCSAg
|
138
|
+
ICA8L2Rpdj4NCgkJCQkgICAgPGRpdiBjbGFzcz0idWktYmxvY2stYiI+DQoJ
|
139
|
+
CQkJCSAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4NCiAgICAgICAgICAgICAg
|
140
|
+
ICAgICAgICAgIDxhIGhyZWY9IiN0eFNlYXJjaExpbmhhIiBpZD0iYnRCdXNj
|
141
|
+
YUxpbmhhIiBkYXRhLXR5cGU9ImJ1dHRvbiIgZGF0YS1yb2xlPSJidXR0b24i
|
142
|
+
IGRhdGEtaW5saW5lPSJ0cnVlIj5PazwvYT4NCiAgICAgICAgICAgICAgICAg
|
143
|
+
ICAgICAgIDwvZGl2Pg0KCQkJCSAgICA8L2Rpdj4NCgkJCSAgICA8L2Rpdj48
|
144
|
+
YnIgY2xhc3M9ImJvdGgiIC8+DQoJCQkgICAgPGRpdiBjbGFzcz0idWktZ3Jp
|
145
|
+
ZC1hIj4NCgkJCQkgICAgPGRpdiBjbGFzcz0idWktYmxvY2stYSI+DQoJCQkJ
|
146
|
+
CSAgICA8aW5wdXQgdHlwZT0ic2VhcmNoIiBpZD0idHhTZWFyY2hQYXJhZGEi
|
147
|
+
IHBsYWNlaG9sZGVyPSJCdXNjYSBwb3IgUGFyYWRhcyBkZSBDb3JyZWRvciIg
|
148
|
+
dGl0bGU9IkJ1c2NhIHBvciBQYXJhZGFzIGRlIENvcnJlZG9yIiBtYXhsZW5n
|
149
|
+
dGg9IjM2IiAvPg0KCQkJCSAgICA8L2Rpdj4NCgkJCQkgICAgPGRpdiBjbGFz
|
150
|
+
cz0idWktYmxvY2stYiI+DQoJCQkJCSAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVy
|
151
|
+
Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN0eFNlYXJj
|
152
|
+
aFBhcmFkYSIgaWQ9ImJ0QnVzY2FQYXJhZGEiIGRhdGEtdHlwZT0iYnV0dG9u
|
153
|
+
IiBkYXRhLXJvbGU9ImJ1dHRvbiIgZGF0YS1pbmxpbmU9InRydWUiPk9rPC9h
|
154
|
+
Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoJCQkJICAgIDwv
|
155
|
+
ZGl2Pg0KCQkJICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxzZWxlY3Qg
|
156
|
+
ZGF0YS1uYXRpdmUtbWVudT0iZmFsc2UiIGRhdGEtb3ZlcmxheS10aGVtZT0i
|
157
|
+
ZCIgaWQ9InNlbGVjdC1jb3JyZWRvciIgbmFtZT0iQ29ycmVkb3JlcyIgdGl0
|
158
|
+
bGU9IlNlbGVjaW9uZSB1bSBjb3JyZWRvciI+PG9wdGlvbiB2YWx1ZT0iIj5T
|
159
|
+
ZWxlY2lvbmUgdW0gY29ycmVkb3I8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9
|
160
|
+
IjgiPkNhbXBvIExpbXBvPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI5Ij5F
|
161
|
+
eHByZXNzbyBUaXJhZGVudGVzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIz
|
162
|
+
Ij5JbmFqYXIgZGUgU291emE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ijci
|
163
|
+
PlBhcmVsaGVpcm9zPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxIj5QaXJp
|
164
|
+
dHViYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMiI+U2FudG8gQW1hcm88
|
165
|
+
L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjEwIj5QYWVzIGRlIEJhcnJvczwv
|
166
|
+
b3B0aW9uPg0KPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgPHNlbGVjdCBp
|
167
|
+
ZD0nc2VsZWN0LWJ0Rm9vdENvbWVudGUnIHRpdGxlPSdDb21lbnRlJyBkYXRh
|
168
|
+
LW92ZXJsYXktdGhlbWU9J2QnIGRhdGEtbmF0aXZlLW1lbnU9J2ZhbHNlJz4N
|
169
|
+
CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj5Db21lbnRlPC9vcHRpb24+
|
170
|
+
DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9JzAnPkVtYWls
|
171
|
+
PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9
|
172
|
+
JzEnPlR3aXR0ZXI8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8L3NlbGVj
|
173
|
+
dD4NCg0KICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgPGRpdiBpZD0i
|
174
|
+
bG9nb3NGb290ZXIiPg0KICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvQ29u
|
175
|
+
dGVudC90aGVtZS9pbWFnZW5zL2xvZ29zRm9vdGVyXzIwMTIwNzE2LmpwZyIg
|
176
|
+
YWx0PSJMb2dvbWFyY2EgU1BUcmFucyBlIFByZWZlaXR1cmEgZGEgQ2lkYWRl
|
177
|
+
IGRlIFPDo28gUGF1bG8iIC8+DQogICAgICAgICAgICA8L2Rpdj4gICAgICAg
|
178
|
+
IDwvZGl2Pg0KCTwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgaWQ9InNwIiBjbGFz
|
179
|
+
cz0iaW50ZXJuYS1lc3RydXR1cmEiIGRhdGEtcm9sZT0icGFnZSIgZGF0YS10
|
180
|
+
aGVtZT0icyI+DQogICAgPGRpdiBjbGFzcz0iY29udGVudC1zZWNvbmRhcnki
|
181
|
+
IGlkPSJ3ZWJUb3BDb250ZW50SW50Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0i
|
182
|
+
aGVhZGVyV2ViIj4NCiAgICAgICAgICAgIDxoMT5QcmV2aXPDo28gV2ViPC9o
|
183
|
+
MT4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPGRpdiBkYXRh
|
184
|
+
LXJvbGU9ImhlYWRlciIgZGF0YS10aGVtZT0icyI+DQogICAgICAgIDxhIGNs
|
185
|
+
YXNzPSJiYWNrQnV0dG9uIiBkYXRhLXJlbD0iYmFjayIgZGF0YS1kaXJlY3Rp
|
186
|
+
b249InJldmVyc2UiIGRhdGEtcm9sZT0iYnV0dG9uIiBkYXRhLWljb249ImJh
|
187
|
+
Y2siIGRhdGEtdGhlbWU9InMiPlZvbHRhcjwvYT4NCiAgICAgICAgPGRpdiBj
|
188
|
+
bGFzcz0idWktYnRuLXJpZ2h0Ij4NCiAgICAgICAgICAgIDxhIGRhdGEtaWNv
|
189
|
+
bj0iaG9tZSIgZGF0YS1pY29ucG9zPSJub3RleHQiIGRhdGEtcm9sZT0iYnV0
|
190
|
+
dG9uIiBocmVmPSIvSW5kZXgiIGlkPSJob21lQnV0dG9uIiByZWw9ImV4dGVy
|
191
|
+
bmFsIj5Ib21lPC9hPg0KICAgICAgICAgICAgPGEgaHJlZj0iI3RvcCIgaWQ9
|
192
|
+
InJlZnJlc2hCdXR0b24iIGNsYXNzPSJiYWNrQnV0dG9uIiBkYXRhLXJvbGU9
|
193
|
+
ImJ1dHRvbiIgZGF0YS1pY29uPSJyZWZyZXNoIiBkYXRhLWljb25wb3M9Im5v
|
194
|
+
dGV4dCI+QXR1YWxpemFyPC9hPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAg
|
195
|
+
PGgxPjwvaDE+DQogICAgPC9kaXY+DQogICAgPGRpdiBkYXRhLXJvbGU9ImNv
|
196
|
+
bnRlbnQiPjwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgaWQ9InBEZU9saG9WaWEi
|
197
|
+
IGNsYXNzPSJpbnRlcm5hLWVzdHJ1dHVyYSIgZGF0YS1yb2xlPSJwYWdlIiBk
|
198
|
+
YXRhLXRoZW1lPSJzIj4NCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LXNlY29u
|
199
|
+
ZGFyeSI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcldlYiI+DQogICAg
|
200
|
+
ICAgICAgICA8aDE+UHJldmlzw6NvIFdlYjwvaDE+DQogICAgICAgIDwvZGl2
|
201
|
+
Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgZGF0YS1yb2xlPSJoZWFkZXIiIGRh
|
202
|
+
dGEtdGhlbWU9InMiPg0KICAgICAgICA8YSBjbGFzcz0iYmFja0J1dHRvbiIg
|
203
|
+
ZGF0YS1yZWw9ImJhY2siIGRhdGEtZGlyZWN0aW9uPSJyZXZlcnNlIiBkYXRh
|
204
|
+
LXJvbGU9ImJ1dHRvbiIgZGF0YS1pY29uPSJiYWNrIiBkYXRhLXRoZW1lPSJz
|
205
|
+
Ij5Wb2x0YXI8L2E+DQogICAgICAgIDxkaXYgY2xhc3M9InVpLWJ0bi1yaWdo
|
206
|
+
dCI+DQogICAgICAgICAgICA8YSBkYXRhLWljb249ImhvbWUiIGRhdGEtaWNv
|
207
|
+
bnBvcz0ibm90ZXh0IiBkYXRhLXJvbGU9ImJ1dHRvbiIgaHJlZj0iL0luZGV4
|
208
|
+
IiBpZD0iQTEiIHJlbD0iZXh0ZXJuYWwiPkhvbWU8L2E+DQogICAgICAgICAg
|
209
|
+
ICA8YSBocmVmPSIjdG9wIiBpZD0iQTIiIGNsYXNzPSJiYWNrQnV0dG9uIiBk
|
210
|
+
YXRhLXJvbGU9ImJ1dHRvbiIgZGF0YS1pY29uPSJyZWZyZXNoIiBkYXRhLWlj
|
211
|
+
b25wb3M9Im5vdGV4dCI+QXR1YWxpemFyPC9hPg0KICAgICAgICA8L2Rpdj4N
|
212
|
+
CiAgICAgICAgPGgxPjwvaDE+DQogICAgPC9kaXY+DQogICAgPGRpdiBkYXRh
|
213
|
+
LXJvbGU9ImNvbnRlbnQiPg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50RGVP
|
214
|
+
bGhvVmlhIj48L2Rpdj4NCiAgICAgICAgPGRpdiBpZD0iYWNjb3JkaW9uT1Yi
|
215
|
+
IGNsYXNzPSJzaG93SGlkZSI+PC9kaXY+DQogICAgPC9kaXY+DQo8L2Rpdj4N
|
216
|
+
CjxkaXYgaWQ9ImJveEFsZXJ0IiBjbGFzcz0idWktc2VsZWN0bWVudSB1aS1v
|
217
|
+
dmVybGF5LXNoYWRvdyB1aS1jb3JuZXItYWxsIHVpLWJvZHktYSI+PC9kaXY+
|
218
|
+
DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgdmFyIF9n
|
219
|
+
YXEgPSBfZ2FxIHx8IFtdOyBfZ2FxLnB1c2goWyJfc2V0QWNjb3VudCIsICJV
|
220
|
+
QS0xMTQ1NTA2MC01Il0pOyAoZnVuY3Rpb24gKCkgeyB2YXIgYSA9IGRvY3Vt
|
221
|
+
ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOyBhLnR5cGUgPSAidGV4dC9q
|
222
|
+
YXZhc2NyaXB0IjsgYS5hc3luYyA9IHRydWU7IGEuc3JjID0gKCJodHRwczoi
|
223
|
+
ID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID8gImh0dHBzOi8vc3Ns
|
224
|
+
IiA6ICJodHRwOi8vd3d3IikgKyAiLmdvb2dsZS1hbmFseXRpY3MuY29tL2dh
|
225
|
+
LmpzIjsgdmFyIGIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
|
226
|
+
c2NyaXB0IilbMF07IGIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSwgYikg
|
227
|
+
fSkoKQ0KPC9zY3JpcHQ+DQo8L2JvZHk+DQo8L2h0bWw+
|
228
|
+
http_version:
|
229
|
+
recorded_at: Thu, 26 Sep 2013 04:24:16 GMT
|
230
|
+
- request:
|
231
|
+
method: get
|
232
|
+
uri: http://olhovivo.sptrans.com.br/v0/Linha/Buscar?termosBusca=1177-42
|
233
|
+
body:
|
234
|
+
encoding: US-ASCII
|
235
|
+
string: ''
|
236
|
+
headers:
|
237
|
+
Cookie:
|
238
|
+
- apiCredentials-v0=2D68289695D6BAFE7993876095B8D9FA55CF1477117AC5AC8F5A703ED0FED7EC3A8DD63DDEE53290BA788C0F1105AADA11F614194D877D3AEF36B1E083A59AB22C1EACD18AF5224159E5C131E08299C88A5BEE5D4BA9BF44B1790B0AF01EA0B41D1545F6E29672E98380C9964A976DE9E2B38EC3A0946B83B17AE653D40194BFC19F51A6B73815CA341A655DCB4D9ACC6FD4061581ABC33EE9B9252DB57C3146AD3BC3E19BD2E23BE8FE4CA07772FF764AE94CD0EEE8317FDD18CF6DD31742E0F723A879B2020A4CCC07E768034A4C58;
|
239
|
+
path=/; HttpOnly
|
240
|
+
Accept-Encoding:
|
241
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
242
|
+
Accept:
|
243
|
+
- '*/*'
|
244
|
+
User-Agent:
|
245
|
+
- Ruby
|
246
|
+
response:
|
247
|
+
status:
|
248
|
+
code: 200
|
249
|
+
message: OK
|
250
|
+
headers:
|
251
|
+
Cache-Control:
|
252
|
+
- no-cache
|
253
|
+
Pragma:
|
254
|
+
- no-cache
|
255
|
+
Content-Type:
|
256
|
+
- application/json; charset=utf-8
|
257
|
+
Expires:
|
258
|
+
- '-1'
|
259
|
+
Server:
|
260
|
+
- Microsoft-IIS/7.5
|
261
|
+
X-Frame-Options:
|
262
|
+
- DENY
|
263
|
+
X-Aspnet-Version:
|
264
|
+
- 4.0.30319
|
265
|
+
X-Powered-By:
|
266
|
+
- ASP.NET
|
267
|
+
Date:
|
268
|
+
- Thu, 26 Sep 2013 04:24:13 GMT
|
269
|
+
Content-Length:
|
270
|
+
- '355'
|
271
|
+
body:
|
272
|
+
encoding: UTF-8
|
273
|
+
string: '[{"CodigoLinha":130,"Circular":false,"Letreiro":"1177","Sentido":1,"Tipo":42,"DenominacaoTPTS":"TERM.
|
274
|
+
PQ.D. PEDRO II","DenominacaoTSTP":"ENGENHEIRO GOULART","Informacoes":null},{"CodigoLinha":32898,"Circular":false,"Letreiro":"1177","Sentido":2,"Tipo":42,"DenominacaoTPTS":"TERM.
|
275
|
+
PQ.D. PEDRO II","DenominacaoTSTP":"ENGENHEIRO GOULART","Informacoes":null}]'
|
276
|
+
http_version:
|
277
|
+
recorded_at: Thu, 26 Sep 2013 04:24:16 GMT
|
278
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SpBus::Request do
|
4
|
+
|
5
|
+
describe "#get" do
|
6
|
+
|
7
|
+
context "authenticated request", vcr: { cassette_name: "auth_request" } do
|
8
|
+
|
9
|
+
subject { described_class.new("http://olhovivo.sptrans.com.br/v0/Linha/Buscar?termosBusca=6400-10") }
|
10
|
+
|
11
|
+
it "does not raise any error when fetching an authenticated resource" do
|
12
|
+
expect {
|
13
|
+
subject.get
|
14
|
+
}.to_not raise_error
|
15
|
+
end
|
16
|
+
|
17
|
+
it "returns expected content" do
|
18
|
+
expect(subject.get).to match(/CodigoLinha/)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "unauthenticated request", vcr: { cassette_name: "normal_request" } do
|
23
|
+
|
24
|
+
subject { described_class.new("http://200.99.150.170/PlanOperWeb/linhaselecionada.asp?Linha=6450-10") }
|
25
|
+
before { subject.authenticated = false }
|
26
|
+
|
27
|
+
it "does not raise any error" do
|
28
|
+
expect {
|
29
|
+
subject.get
|
30
|
+
}.to_not raise_error
|
31
|
+
end
|
32
|
+
|
33
|
+
it "returns expected content" do
|
34
|
+
expect(subject.get).to match(/Selecione abaixo o resultado desejado/)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
data/spec/route_spec.rb
CHANGED
@@ -2,46 +2,37 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe SpBus::Route do
|
4
4
|
|
5
|
-
subject { described_class.new("
|
5
|
+
subject { described_class.new("6450-10") }
|
6
6
|
|
7
7
|
it { should respond_to(:number) }
|
8
8
|
it { should respond_to(:origin) }
|
9
9
|
it { should respond_to(:destination) }
|
10
|
-
it { should respond_to(:
|
11
|
-
it { should respond_to(:
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
expect(subject.origin).to eql("TERM. CAPELINHA")
|
25
|
-
end
|
26
|
-
|
27
|
-
it "sets destination attribute" do
|
28
|
-
expect(subject.destination).to eql("TERM. BANDEIRA")
|
10
|
+
it { should respond_to(:origin_id) }
|
11
|
+
it { should respond_to(:destination_id) }
|
12
|
+
|
13
|
+
it { should respond_to(:number=) }
|
14
|
+
it { should respond_to(:origin=) }
|
15
|
+
it { should respond_to(:destination=) }
|
16
|
+
it { should respond_to(:one_way=) }
|
17
|
+
it { should respond_to(:origin_id=) }
|
18
|
+
it { should respond_to(:destination_id=) }
|
19
|
+
|
20
|
+
describe "initializer" do
|
21
|
+
it "receives route number" do
|
22
|
+
route = described_class.new("6450-10")
|
23
|
+
expect(route.number).to eql("6450-10")
|
29
24
|
end
|
30
25
|
end
|
31
26
|
|
32
|
-
describe "#
|
33
|
-
|
34
|
-
|
35
|
-
|
27
|
+
describe "#one_way?" do
|
28
|
+
it "returns true when one_way attr is true" do
|
29
|
+
subject.one_way = true
|
30
|
+
expect(subject.one_way?).to be_true
|
31
|
+
end
|
36
32
|
|
37
|
-
it "returns
|
38
|
-
|
39
|
-
|
40
|
-
origin: "TERM. CAPELINHA",
|
41
|
-
destination: "TERM. BANDEIRA",
|
42
|
-
code_for_origin: 59,
|
43
|
-
code_for_destination: 32827
|
44
|
-
})
|
33
|
+
it "returns false when one_way attr is false" do
|
34
|
+
subject.one_way = false
|
35
|
+
expect(subject.one_way?).to be_false
|
45
36
|
end
|
46
37
|
end
|
47
38
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SpBus::Scrapers::Locations do
|
4
|
+
|
5
|
+
describe "#fetch", vcr: { cassette_name: "buses_locations" } do
|
6
|
+
|
7
|
+
subject { described_class.new(32827) }
|
8
|
+
before { subject.fetch }
|
9
|
+
|
10
|
+
it "creates a Bus object for every position" do
|
11
|
+
expect(subject.buses).to have(3).item
|
12
|
+
expect(subject.buses.first).to be_kind_of(SpBus::Bus)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "sets bus latitude" do
|
16
|
+
expect(subject.buses.first.latitude).to eql(-23.604221250000002)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "sets bus longitude" do
|
20
|
+
expect(subject.buses.first.longitude).to eql(-46.6749935)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SpBus::Scrapers::RouteDetails do
|
4
|
+
|
5
|
+
describe "#fetch" do
|
6
|
+
|
7
|
+
subject { described_class.new(route) }
|
8
|
+
|
9
|
+
context "invalid route", vcr: { cassette_name: "invalid_route_detail" } do
|
10
|
+
|
11
|
+
let(:route) { SpBus::Route.new("banana") }
|
12
|
+
|
13
|
+
it "raises an error" do
|
14
|
+
expect {
|
15
|
+
subject.fetch
|
16
|
+
}.to raise_error
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "normal route", vcr: { cassette_name: "normal_route_detail" } do
|
21
|
+
|
22
|
+
let(:route) { SpBus::Route.new("6450-10") }
|
23
|
+
before { subject.fetch }
|
24
|
+
|
25
|
+
it "sets origin" do
|
26
|
+
expect(route.origin).to eql("TERM. CAPELINHA")
|
27
|
+
end
|
28
|
+
|
29
|
+
it "sets destination" do
|
30
|
+
expect(route.destination).to eql("TERM. BANDEIRA")
|
31
|
+
end
|
32
|
+
|
33
|
+
it "sets destination id" do
|
34
|
+
expect(route.destination_id).to eql(59)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "sets origin id" do
|
38
|
+
expect(route.origin_id).to eql(32827)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "one way route", vcr: { cassette_name: "one_way_route_detail" } do
|
43
|
+
|
44
|
+
let(:route) { SpBus::Route.new("1177-42") }
|
45
|
+
before do
|
46
|
+
route.one_way = true
|
47
|
+
subject.fetch
|
48
|
+
end
|
49
|
+
|
50
|
+
it "sets origin" do
|
51
|
+
expect(route.origin).to eql("ENGENHEIRO GOULART")
|
52
|
+
end
|
53
|
+
|
54
|
+
it "sets destination" do
|
55
|
+
expect(route.destination).to eql("TERM. PQ.D. PEDRO II")
|
56
|
+
end
|
57
|
+
|
58
|
+
it "sets destination id" do
|
59
|
+
expect(route.destination_id).to eql(130)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "does not set origin id" do
|
63
|
+
expect(route.origin_id).to be_nil
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SpBus::Scrapers::Routes do
|
4
|
+
|
5
|
+
describe "#fetch", vcr: { cassette_name: "bus_routes" } do
|
6
|
+
|
7
|
+
before { subject.fetch }
|
8
|
+
|
9
|
+
it "returns all bus routes" do
|
10
|
+
expect(subject.routes).to have(1315).items
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns a Route object for every found route" do
|
14
|
+
subject.routes.each do |route|
|
15
|
+
expect(route).to be_kind_of(SpBus::Route)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "sets route number" do
|
20
|
+
expect(subject.routes.first.number).to eql("1016-10")
|
21
|
+
expect(subject.routes.last.number).to eql("978T-10")
|
22
|
+
end
|
23
|
+
|
24
|
+
it "sets route one_way attribute" do
|
25
|
+
expect(subject.routes.first.one_way?).to be_false
|
26
|
+
expect(subject.routes[10].one_way?).to be_true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
data/spec/spbus_spec.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SpBus do
|
4
|
+
|
5
|
+
subject { described_class }
|
6
|
+
|
7
|
+
describe ".fetch_routes" do
|
8
|
+
|
9
|
+
let(:route1) { SpBus::Route.new("6400-10") }
|
10
|
+
let(:route2) { SpBus::Route.new("6450-10") }
|
11
|
+
let(:scraper) { double.as_null_object }
|
12
|
+
|
13
|
+
it "fetch route details for every route" do
|
14
|
+
allow_any_instance_of(SpBus::Scrapers::Routes).to receive(:fetch)
|
15
|
+
allow_any_instance_of(SpBus::Scrapers::Routes).to receive(:routes).and_return([route1, route2])
|
16
|
+
|
17
|
+
expect(SpBus::Scrapers::RouteDetails).to receive(:new).with(route1).and_return(scraper)
|
18
|
+
expect(SpBus::Scrapers::RouteDetails).to receive(:new).with(route2).and_return(scraper)
|
19
|
+
|
20
|
+
expect(scraper).to receive(:fetch).twice
|
21
|
+
|
22
|
+
expect(subject.fetch_routes).to eql([route1, route2])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe ".fetch_buses" do
|
27
|
+
|
28
|
+
let(:scraper) { double.as_null_object }
|
29
|
+
let(:buses) { double }
|
30
|
+
|
31
|
+
it "fetch all buses locations for a given destination" do
|
32
|
+
expect(SpBus::Scrapers::Locations).to receive(:new).with(1234).and_return(scraper)
|
33
|
+
expect(scraper).to receive(:fetch)
|
34
|
+
allow(scraper).to receive(:buses).and_return(buses)
|
35
|
+
|
36
|
+
expect(subject.fetch_buses(1234)).to eql(buses)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
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.3
|
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-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -81,13 +81,13 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: pry
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
|
-
type: :
|
90
|
+
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: nokogiri
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - '>='
|
@@ -125,21 +125,27 @@ files:
|
|
125
125
|
- example.rb
|
126
126
|
- lib/spbus.rb
|
127
127
|
- lib/spbus/bus.rb
|
128
|
-
- lib/spbus/
|
129
|
-
- lib/spbus/locations.rb
|
128
|
+
- lib/spbus/request.rb
|
130
129
|
- lib/spbus/route.rb
|
130
|
+
- lib/spbus/scrapers/locations.rb
|
131
|
+
- lib/spbus/scrapers/route_details.rb
|
132
|
+
- lib/spbus/scrapers/routes.rb
|
131
133
|
- lib/spbus/version.rb
|
132
134
|
- spbus.gemspec
|
133
|
-
- spec/
|
134
|
-
- spec/cassettes/
|
135
|
-
- spec/cassettes/
|
136
|
-
- spec/cassettes/
|
137
|
-
- spec/cassettes/
|
138
|
-
- spec/cassettes/
|
139
|
-
- spec/cassettes/
|
140
|
-
- spec/
|
141
|
-
- spec/
|
135
|
+
- spec/bus_spec.rb
|
136
|
+
- spec/cassettes/auth_request.yml
|
137
|
+
- spec/cassettes/bus_routes.yml
|
138
|
+
- spec/cassettes/buses_locations.yml
|
139
|
+
- spec/cassettes/invalid_route_detail.yml
|
140
|
+
- spec/cassettes/normal_request.yml
|
141
|
+
- spec/cassettes/normal_route_detail.yml
|
142
|
+
- spec/cassettes/one_way_route_detail.yml
|
143
|
+
- spec/request_spec.rb
|
142
144
|
- spec/route_spec.rb
|
145
|
+
- spec/scrapers/locations_scraper_spec.rb
|
146
|
+
- spec/scrapers/route_details_scraper_spec.rb
|
147
|
+
- spec/scrapers/routes_scraper_spec.rb
|
148
|
+
- spec/spbus_spec.rb
|
143
149
|
- spec/spec_helper.rb
|
144
150
|
homepage: http://github.com/lenon/spbus
|
145
151
|
licenses:
|
@@ -167,14 +173,18 @@ specification_version: 4
|
|
167
173
|
summary: A gem to easily retrieve information about São Paulo bus routes, numbers,
|
168
174
|
location, etc using SPTrans web services.
|
169
175
|
test_files:
|
170
|
-
- spec/
|
171
|
-
- spec/cassettes/
|
172
|
-
- spec/cassettes/
|
173
|
-
- spec/cassettes/
|
174
|
-
- spec/cassettes/
|
175
|
-
- spec/cassettes/
|
176
|
-
- spec/cassettes/
|
177
|
-
- spec/
|
178
|
-
- spec/
|
176
|
+
- spec/bus_spec.rb
|
177
|
+
- spec/cassettes/auth_request.yml
|
178
|
+
- spec/cassettes/bus_routes.yml
|
179
|
+
- spec/cassettes/buses_locations.yml
|
180
|
+
- spec/cassettes/invalid_route_detail.yml
|
181
|
+
- spec/cassettes/normal_request.yml
|
182
|
+
- spec/cassettes/normal_route_detail.yml
|
183
|
+
- spec/cassettes/one_way_route_detail.yml
|
184
|
+
- spec/request_spec.rb
|
179
185
|
- spec/route_spec.rb
|
186
|
+
- spec/scrapers/locations_scraper_spec.rb
|
187
|
+
- spec/scrapers/route_details_scraper_spec.rb
|
188
|
+
- spec/scrapers/routes_scraper_spec.rb
|
189
|
+
- spec/spbus_spec.rb
|
180
190
|
- spec/spec_helper.rb
|