gares 0.1.3 → 0.1.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/README.md +11 -4
- data/gares.gemspec +2 -0
- data/lib/gares/base.rb +17 -1
- data/lib/gares/version.rb +1 -1
- data/spec/gares/gare_spec.rb +8 -0
- data/spec/gares/string_extensions_spec.rb +17 -0
- metadata +58 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2ad3bf50a1a740e624ca06ba9ea4de2173b0b22
|
4
|
+
data.tar.gz: 7e04564b13989559a80d666ce3d74717d1863ab9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1794901b7b8dc65826c3eb3fa07457798eccc6462828cda410c4d14fbff7062b49c6cfa85b8f5ef9cb7cf7b340378c68a688bf26ad66b52298ba834b194f92a
|
7
|
+
data.tar.gz: e8b3bc039ff0b802dab7ee8ff1a81c60915774d275da36110d23db98ba01204cde0fcf8412a5708da63fb559ab8778e47fada48dcf1d97d028190e03f6d1f082
|
data/README.md
CHANGED
@@ -25,21 +25,28 @@ Gares currently features the following:
|
|
25
25
|
g.wifi?
|
26
26
|
#=> true
|
27
27
|
|
28
|
+
g.has_borne?
|
29
|
+
#=> true
|
30
|
+
|
28
31
|
g.services.first
|
29
32
|
#=> "Services à la clientèle"
|
30
33
|
|
34
|
+
[g.lat, g.long]
|
35
|
+
#=> [45.760281, 4.859801]
|
36
|
+
|
31
37
|
### Searching:
|
32
38
|
|
33
39
|
g = Gares::Search.new("Aix")
|
34
40
|
|
35
41
|
g.gares.size
|
36
42
|
#=> 7
|
37
|
-
|
43
|
+
|
38
44
|
# or
|
39
|
-
|
45
|
+
|
40
46
|
gares = Gares::Gare.search("lyon")
|
41
|
-
|
42
|
-
|
47
|
+
gare = gares.last
|
48
|
+
|
49
|
+
gare.name
|
43
50
|
#=> "Paris Gare de Lyon"
|
44
51
|
|
45
52
|
## Installation
|
data/gares.gemspec
CHANGED
@@ -26,6 +26,8 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_development_dependency 'rake'
|
27
27
|
s.add_development_dependency 'rspec'
|
28
28
|
s.add_development_dependency 'gokdok'
|
29
|
+
s.add_development_dependency 'guard'
|
30
|
+
s.add_development_dependency 'guard-rspec'
|
29
31
|
s.add_development_dependency 'rdoc'
|
30
32
|
s.add_development_dependency 'fakeweb'
|
31
33
|
s.add_development_dependency 'coveralls'
|
data/lib/gares/base.rb
CHANGED
@@ -3,6 +3,9 @@ module Gares
|
|
3
3
|
class Base
|
4
4
|
attr_accessor :slug, :name
|
5
5
|
|
6
|
+
GPS_COORD = 'Coordonnées GPS : '
|
7
|
+
NAME = 'En direct de '
|
8
|
+
|
6
9
|
# Initialize a new Gare object with it's gare-en-mouvemnt id (as a String)
|
7
10
|
#
|
8
11
|
# gare = Gares::Gare.new("frabt")
|
@@ -16,6 +19,14 @@ module Gares
|
|
16
19
|
@name = name if name
|
17
20
|
end
|
18
21
|
|
22
|
+
def lat
|
23
|
+
coordinates.first.to_f
|
24
|
+
end
|
25
|
+
|
26
|
+
def long
|
27
|
+
coordinates.last.to_f
|
28
|
+
end
|
29
|
+
|
19
30
|
def services
|
20
31
|
@services ||= Services.new(@slug)
|
21
32
|
@services.all
|
@@ -52,12 +63,17 @@ module Gares
|
|
52
63
|
if @name && !force_refresh
|
53
64
|
@name
|
54
65
|
else
|
55
|
-
@name = document.at('h1').inner_html.gsub(
|
66
|
+
@name = document.at('h1').inner_html.gsub(NAME, '') rescue nil
|
56
67
|
end
|
57
68
|
end
|
58
69
|
|
59
70
|
private
|
60
71
|
|
72
|
+
def coordinates
|
73
|
+
@coordinates ||= document.xpath("//p/strong[contains(text(), '#{GPS_COORD}')]").first.parent.text
|
74
|
+
.gsub(GPS_COORD, '').split(',')
|
75
|
+
end
|
76
|
+
|
61
77
|
# Returns a new Nokogiri document for parsing.
|
62
78
|
def document
|
63
79
|
@document ||= Nokogiri::HTML(Gares::Gare.find_by_slug(@slug))
|
data/lib/gares/version.rb
CHANGED
data/spec/gares/gare_spec.rb
CHANGED
@@ -22,6 +22,14 @@ describe Gares::Gare do
|
|
22
22
|
expect(name).to eql('Lyon Part Dieu')
|
23
23
|
end
|
24
24
|
|
25
|
+
it 'should find the geolocation coordinates' do
|
26
|
+
lat = @gare.lat
|
27
|
+
long = @gare.long
|
28
|
+
|
29
|
+
expect(lat).to eql(45.760281)
|
30
|
+
expect(long).to eql(4.859801)
|
31
|
+
end
|
32
|
+
|
25
33
|
it 'should have opening hours' do
|
26
34
|
horaires = @gare.horaires
|
27
35
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe String do
|
4
|
+
|
5
|
+
let(:html) { "<p>my paragraph</p>" }
|
6
|
+
let(:escaped_html) { CGI::escapeHTML(html) }
|
7
|
+
|
8
|
+
describe '#strip_tags' do
|
9
|
+
subject { html.strip_tags }
|
10
|
+
it { should eql("my paragraph") }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '#unescape_html' do
|
14
|
+
subject { escaped_html.unescape_html }
|
15
|
+
it { should eql(html) }
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,139 +1,167 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gares
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Bonaud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hashie
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: unidecoder
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '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
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: gokdok
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: rdoc
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
|
-
- -
|
129
|
+
- - ">="
|
102
130
|
- !ruby/object:Gem::Version
|
103
131
|
version: '0'
|
104
132
|
type: :development
|
105
133
|
prerelease: false
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
107
135
|
requirements:
|
108
|
-
- -
|
136
|
+
- - ">="
|
109
137
|
- !ruby/object:Gem::Version
|
110
138
|
version: '0'
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
140
|
name: fakeweb
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
|
-
- -
|
143
|
+
- - ">="
|
116
144
|
- !ruby/object:Gem::Version
|
117
145
|
version: '0'
|
118
146
|
type: :development
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
149
|
requirements:
|
122
|
-
- -
|
150
|
+
- - ">="
|
123
151
|
- !ruby/object:Gem::Version
|
124
152
|
version: '0'
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: coveralls
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
|
-
- -
|
157
|
+
- - ">="
|
130
158
|
- !ruby/object:Gem::Version
|
131
159
|
version: '0'
|
132
160
|
type: :development
|
133
161
|
prerelease: false
|
134
162
|
version_requirements: !ruby/object:Gem::Requirement
|
135
163
|
requirements:
|
136
|
-
- -
|
164
|
+
- - ">="
|
137
165
|
- !ruby/object:Gem::Version
|
138
166
|
version: '0'
|
139
167
|
description: Easily use Ruby or the command line to find information on gares-en-mouvement.com.
|
@@ -143,11 +171,11 @@ executables: []
|
|
143
171
|
extensions: []
|
144
172
|
extra_rdoc_files: []
|
145
173
|
files:
|
146
|
-
- .gitignore
|
147
|
-
- .rspec
|
148
|
-
- .rubocop.yml
|
149
|
-
- .rubocop_todo.yml
|
150
|
-
- .travis.yml
|
174
|
+
- ".gitignore"
|
175
|
+
- ".rspec"
|
176
|
+
- ".rubocop.yml"
|
177
|
+
- ".rubocop_todo.yml"
|
178
|
+
- ".travis.yml"
|
151
179
|
- Gemfile
|
152
180
|
- MIT-LICENSE
|
153
181
|
- README.md
|
@@ -175,6 +203,7 @@ files:
|
|
175
203
|
- spec/gares/gare_spec.rb
|
176
204
|
- spec/gares/sales_spec.rb
|
177
205
|
- spec/gares/search_spec.rb
|
206
|
+
- spec/gares/string_extensions_spec.rb
|
178
207
|
- spec/spec_helper.rb
|
179
208
|
- tasks/fixtures.rake
|
180
209
|
- tasks/rspec.rake
|
@@ -188,18 +217,19 @@ require_paths:
|
|
188
217
|
- lib
|
189
218
|
required_ruby_version: !ruby/object:Gem::Requirement
|
190
219
|
requirements:
|
191
|
-
- -
|
220
|
+
- - ">="
|
192
221
|
- !ruby/object:Gem::Version
|
193
222
|
version: '0'
|
194
223
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
224
|
requirements:
|
196
|
-
- -
|
225
|
+
- - ">="
|
197
226
|
- !ruby/object:Gem::Version
|
198
227
|
version: '0'
|
199
228
|
requirements: []
|
200
229
|
rubyforge_project: gares
|
201
|
-
rubygems_version: 2.0
|
230
|
+
rubygems_version: 2.2.0
|
202
231
|
signing_key:
|
203
232
|
specification_version: 4
|
204
233
|
summary: Easily access the publicly available information on gares-en-mouvement.com.
|
205
234
|
test_files: []
|
235
|
+
has_rdoc:
|