webdrivers 3.3.3 → 3.4.0
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/CHANGELOG.md +6 -0
- data/lib/webdrivers.rb +1 -1
- data/lib/webdrivers/chromedriver.rb +0 -4
- data/lib/webdrivers/common.rb +20 -10
- data/lib/webdrivers/geckodriver.rb +0 -4
- data/lib/webdrivers/iedriver.rb +0 -4
- data/lib/webdrivers/mswebdriver.rb +0 -4
- data/spec/chromedriver_spec.rb +29 -5
- data/spec/geckodriver_spec.rb +8 -4
- data/spec/iedriver_spec.rb +6 -1
- data/webdrivers.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ed0fab7a9cc03600fc8fe15e15c34b7ca3ac206
|
4
|
+
data.tar.gz: 5aeb76b9a96babca62fee38da3ede1e113b72c7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db7200151e7343fc6ec93b0654405a4f8b40a4bcc987c625b955b1c957d72d76f05a7774012601e8fda84ab98b01d2531dda6a64a8c186d350ee483b1b1a1e60
|
7
|
+
data.tar.gz: e66a2e52a69b65bf11db4f653c27123fb374bdfa7564e0779ce68e2059c959835e04061d83e5206ef86b92b032880b234cd422a9318068588860b2bfc3a8e5d0
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
### 3.4.0 (2018-09-07)
|
2
|
+
|
3
|
+
* Allow public access to `#install_dir` and `#binary`
|
4
|
+
* Allow user to set the default download directory
|
5
|
+
* Improve version comparisons with use of `Gem::Version`
|
6
|
+
|
1
7
|
### 3.3.3 (2018-08-14)
|
2
8
|
|
3
9
|
* Fix Geckodriver since Github changed its html again
|
data/lib/webdrivers.rb
CHANGED
data/lib/webdrivers/common.rb
CHANGED
@@ -41,7 +41,7 @@ module Webdrivers
|
|
41
41
|
url = download_url(version)
|
42
42
|
filename = File.basename url
|
43
43
|
|
44
|
-
|
44
|
+
FileUtils.mkdir_p(install_dir) unless File.exists?(install_dir)
|
45
45
|
Dir.chdir install_dir do
|
46
46
|
FileUtils.rm_f filename
|
47
47
|
open(filename, "wb") do |file|
|
@@ -66,6 +66,14 @@ module Webdrivers
|
|
66
66
|
binary
|
67
67
|
end
|
68
68
|
|
69
|
+
def install_dir
|
70
|
+
Webdrivers.install_dir || File.expand_path(File.join(ENV['HOME'], ".webdrivers"))
|
71
|
+
end
|
72
|
+
|
73
|
+
def binary
|
74
|
+
File.join install_dir, file_name
|
75
|
+
end
|
76
|
+
|
69
77
|
protected
|
70
78
|
|
71
79
|
def get(url, limit = 10)
|
@@ -100,7 +108,14 @@ module Webdrivers
|
|
100
108
|
end
|
101
109
|
|
102
110
|
def download_url(version)
|
103
|
-
|
111
|
+
key = if version.is_a?(Gem::Version)
|
112
|
+
version
|
113
|
+
elsif version.nil?
|
114
|
+
latest
|
115
|
+
else
|
116
|
+
Gem::Version.new(version.to_s)
|
117
|
+
end
|
118
|
+
downloads[key]
|
104
119
|
end
|
105
120
|
|
106
121
|
def downloaded?
|
@@ -109,10 +124,6 @@ module Webdrivers
|
|
109
124
|
result
|
110
125
|
end
|
111
126
|
|
112
|
-
def binary
|
113
|
-
File.join install_dir, file_name
|
114
|
-
end
|
115
|
-
|
116
127
|
def site_available?
|
117
128
|
get(base_url)
|
118
129
|
Webdrivers.logger.debug "Found Site: #{base_url}"
|
@@ -174,15 +185,14 @@ module Webdrivers
|
|
174
185
|
@top_path
|
175
186
|
end
|
176
187
|
|
177
|
-
def install_dir
|
178
|
-
File.expand_path(File.join(ENV['HOME'], ".webdrivers")).tap { |dir| FileUtils.mkdir_p dir }
|
179
|
-
end
|
180
|
-
|
181
188
|
# Already have latest version downloaded?
|
182
189
|
def correct_binary?
|
183
190
|
latest == current && File.exists?(binary)
|
184
191
|
end
|
185
192
|
|
193
|
+
def normalize(string)
|
194
|
+
Gem::Version.new(string)
|
195
|
+
end
|
186
196
|
end
|
187
197
|
end
|
188
198
|
end
|
@@ -14,10 +14,6 @@ module Webdrivers
|
|
14
14
|
|
15
15
|
private
|
16
16
|
|
17
|
-
def normalize(string)
|
18
|
-
string.match(/(\d+)\.(\d+\.\d+)/).to_a.map {|v| v.tr('.', '')}[1..-1].join('.').to_f
|
19
|
-
end
|
20
|
-
|
21
17
|
def downloads
|
22
18
|
raise StandardError, "Can not reach site" unless site_available?
|
23
19
|
Webdrivers.logger.debug "Versions previously located on downloads site: #{@downloads.keys}" if @downloads
|
data/lib/webdrivers/iedriver.rb
CHANGED
data/spec/chromedriver_spec.rb
CHANGED
@@ -5,12 +5,16 @@ describe Webdrivers::Chromedriver do
|
|
5
5
|
let(:chromedriver) { Webdrivers::Chromedriver }
|
6
6
|
|
7
7
|
it 'parses chromedriver versions before 2.10' do
|
8
|
-
expect(chromedriver.send
|
8
|
+
expect(chromedriver.send(:normalize, '2.9').version).to eq '2.9'
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'finds latest version' do
|
12
|
-
|
13
|
-
|
12
|
+
old_version = Gem::Version.new("2.30")
|
13
|
+
future_version = Gem::Version.new("2.90")
|
14
|
+
latest_version = chromedriver.latest
|
15
|
+
|
16
|
+
expect(latest_version).to be > old_version
|
17
|
+
expect(latest_version).to be < future_version
|
14
18
|
end
|
15
19
|
|
16
20
|
it 'downloads latest version by default' do
|
@@ -19,10 +23,16 @@ describe Webdrivers::Chromedriver do
|
|
19
23
|
expect(chromedriver.current).to eq chromedriver.latest
|
20
24
|
end
|
21
25
|
|
22
|
-
it 'downloads specified version' do
|
26
|
+
it 'downloads specified version by Float' do
|
23
27
|
chromedriver.remove
|
24
28
|
chromedriver.download(2.29)
|
25
|
-
expect(chromedriver.current).to eq 2.29
|
29
|
+
expect(chromedriver.current.version).to eq '2.29'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'downloads specified version by String' do
|
33
|
+
chromedriver.remove
|
34
|
+
chromedriver.download('2.29')
|
35
|
+
expect(chromedriver.current.version).to eq '2.29'
|
26
36
|
end
|
27
37
|
|
28
38
|
it 'removes chromedriver' do
|
@@ -42,4 +52,18 @@ describe Webdrivers::Chromedriver do
|
|
42
52
|
end
|
43
53
|
end
|
44
54
|
|
55
|
+
it 'allows setting of install directory' do
|
56
|
+
begin
|
57
|
+
install_dir = File.expand_path(File.join(ENV['HOME'], ".webdrivers2"))
|
58
|
+
Webdrivers.install_dir = install_dir
|
59
|
+
expect(chromedriver.install_dir).to eq install_dir
|
60
|
+
ensure
|
61
|
+
Webdrivers.install_dir = nil
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'returns full location of binary' do
|
66
|
+
install_dir = File.expand_path(File.join(ENV['HOME'], ".webdrivers"))
|
67
|
+
expect(chromedriver.binary).to match /#{install_dir}\/chromedriver/
|
68
|
+
end
|
45
69
|
end
|
data/spec/geckodriver_spec.rb
CHANGED
@@ -18,8 +18,12 @@ describe Webdrivers::Geckodriver do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'finds latest version' do
|
21
|
-
|
22
|
-
|
21
|
+
old_version = Gem::Version.new('0.17')
|
22
|
+
future_version = Gem::Version.new('0.30')
|
23
|
+
latest_version = geckodriver.latest
|
24
|
+
|
25
|
+
expect(latest_version).to be > old_version
|
26
|
+
expect(latest_version).to be < future_version
|
23
27
|
end
|
24
28
|
|
25
29
|
it 'downloads latest version by default' do
|
@@ -29,8 +33,8 @@ describe Webdrivers::Geckodriver do
|
|
29
33
|
|
30
34
|
it 'downloads specified version' do
|
31
35
|
geckodriver.remove
|
32
|
-
geckodriver.download(0.17)
|
33
|
-
expect(geckodriver.current).to eq 0.17
|
36
|
+
geckodriver.download('0.17.0')
|
37
|
+
expect(geckodriver.current.version).to eq '0.17.0'
|
34
38
|
end
|
35
39
|
|
36
40
|
it 'removes geckodriver' do
|
data/spec/iedriver_spec.rb
CHANGED
@@ -5,7 +5,12 @@ describe Webdrivers::IEdriver do
|
|
5
5
|
let(:iedriver) { Webdrivers::IEdriver }
|
6
6
|
|
7
7
|
it 'finds latest version' do
|
8
|
-
|
8
|
+
old_version = Gem::Version.new("3.12.0")
|
9
|
+
future_version = Gem::Version.new("3.60.0")
|
10
|
+
latest_version = iedriver.latest
|
11
|
+
|
12
|
+
expect(latest_version).to be > old_version
|
13
|
+
expect(latest_version).to be < future_version
|
9
14
|
end
|
10
15
|
|
11
16
|
it 'downloads iedriver' do
|
data/webdrivers.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "webdrivers"
|
6
|
-
s.version = "3.
|
6
|
+
s.version = "3.4.0"
|
7
7
|
s.authors = ["Titus Fortner"]
|
8
8
|
s.email = ["titusfortner@gmail.com"]
|
9
9
|
s.homepage = "https://github.com/titusfortner/webdrivers"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webdrivers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Titus Fortner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|