wraith 4.2.3 → 4.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/assets/invalid1.jpg +0 -0
- data/assets/invalid2.jpg +0 -0
- data/lib/wraith/compare_images.rb +1 -1
- data/lib/wraith/helpers/save_metadata.rb +3 -0
- data/lib/wraith/save_images.rb +37 -23
- data/lib/wraith/version.rb +1 -1
- data/lib/wraith/wraith.rb +18 -25
- data/spec/_helpers.rb +0 -1
- data/spec/config_spec.rb +20 -0
- data/spec/configs/test_config--casper.yaml +3 -0
- data/spec/configs/test_config--phantom.yaml +4 -0
- data/spec/js/global--chrome.js +4 -4
- data/spec/js/path--chrome.js +4 -4
- data/spec/resize_reload_spec.rb +4 -2
- data/templates/configs/capture.yaml +4 -0
- data/templates/configs/history.yaml +4 -0
- data/templates/configs/spider.yaml +4 -0
- data/wraith.gemspec +2 -3
- metadata +40 -53
- data/assets/invalid.jpg +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0db0af6f5dd16e7a2277219f65fa5dd11809e249a6178e9a23fd83b5d528507d
|
4
|
+
data.tar.gz: 597f19e645590a2d0f7d2f33bfb4fb485c07bef157bd7fab791a2399b47e488b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bfbc11c06483924537b9566dad29e46bed9923dc58f22f6a345c1512308d363c317d144ce6f6b91d2976ead8f501c4f7a43d990a22e5e7b26caac49a5a3b18a
|
7
|
+
data.tar.gz: 5289d351bf42e7b2c19c97b62d6df870b59e4395a78285e08948d9a83913e7d191901a2d58f096d06a6256ade62f69ad9262cd6c7329820787058d3dec03609e
|
data/README.md
CHANGED
@@ -66,7 +66,7 @@ Wraith is available to everyone under the terms of the Apache 2.0 open source li
|
|
66
66
|
|
67
67
|
## Selenium-Wraith
|
68
68
|
|
69
|
-
Anyone interested in integrating selenium capability with Wraith should check out [Selenium-Wraith](https://github.com/
|
69
|
+
Anyone interested in integrating selenium capability with Wraith should check out [Selenium-Wraith](https://github.com/mathew-hall/wraith-selenium) (maintained by Mathew Hall), which was forked from BBC's Wraith on 16/04/14 and adds the following capabilities:
|
70
70
|
|
71
71
|
1. Selenium integration, both running locally on a desktop or on a selenium grid
|
72
72
|
2. Browser to browser screenshot comparison
|
data/assets/invalid1.jpg
ADDED
Binary file
|
data/assets/invalid2.jpg
ADDED
Binary file
|
@@ -31,7 +31,7 @@ class Wraith::CompareImages
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def compare_task(base, compare, output, info)
|
34
|
-
cmdline = "compare -
|
34
|
+
cmdline = "compare -fuzz #{wraith.fuzz} -metric AE -highlight-color #{wraith.highlight_color} #{base} #{compare.shellescape} #{output}"
|
35
35
|
px_value = Open3.popen3(cmdline) { |_stdin, _stdout, stderr, _wait_thr| stderr.read }.to_f
|
36
36
|
begin
|
37
37
|
img_size = ImageSize.path(output).size.inject(:*)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "wraith"
|
2
|
+
require "fileutils"
|
2
3
|
|
3
4
|
class SaveMetadata
|
4
5
|
attr_reader :wraith, :history
|
@@ -14,6 +15,8 @@ class SaveMetadata
|
|
14
15
|
|
15
16
|
def file_names(width, label, domain_label)
|
16
17
|
width = "MULTI" if width.is_a? Array
|
18
|
+
|
19
|
+
FileUtils::mkdir_p "#{wraith.directory}/#{label}" # ensure the directory exists
|
17
20
|
"#{wraith.directory}/#{label}/#{width}_#{engine}_#{domain_label}.png"
|
18
21
|
end
|
19
22
|
|
data/lib/wraith/save_images.rb
CHANGED
@@ -53,8 +53,8 @@ class Wraith::SaveImages
|
|
53
53
|
compare_file_name = meta.file_names(width, label, meta.compare_label)
|
54
54
|
|
55
55
|
jobs = []
|
56
|
-
jobs << [label, settings.path, prepare_widths_for_cli(width), settings.base_url, base_file_name, settings.selector, wraith.before_capture, settings.before_capture]
|
57
|
-
jobs << [label, settings.path, prepare_widths_for_cli(width), settings.compare_url, compare_file_name, settings.selector, wraith.before_capture, settings.before_capture] unless settings.compare_url.nil?
|
56
|
+
jobs << [label, settings.path, prepare_widths_for_cli(width), settings.base_url, base_file_name, settings.selector, wraith.before_capture, settings.before_capture, 'invalid1.jpg']
|
57
|
+
jobs << [label, settings.path, prepare_widths_for_cli(width), settings.compare_url, compare_file_name, settings.selector, wraith.before_capture, settings.before_capture, 'invalid2.jpg'] unless settings.compare_url.nil?
|
58
58
|
|
59
59
|
jobs
|
60
60
|
end
|
@@ -67,6 +67,7 @@ class Wraith::SaveImages
|
|
67
67
|
|
68
68
|
def run_command(command)
|
69
69
|
output = []
|
70
|
+
command.gsub!(/'/, '')
|
70
71
|
IO.popen(command).each do |line|
|
71
72
|
logger.info line
|
72
73
|
output << line.chomp!
|
@@ -75,7 +76,7 @@ class Wraith::SaveImages
|
|
75
76
|
end
|
76
77
|
|
77
78
|
def parallel_task(jobs)
|
78
|
-
Parallel.each(jobs, :in_threads =>
|
79
|
+
Parallel.each(jobs, :in_threads => wraith.threads) do |_label, _path, width, url, filename, selector, global_before_capture, path_before_capture|
|
79
80
|
begin
|
80
81
|
if meta.engine == "chrome"
|
81
82
|
capture_image_selenium(width, url, filename, selector, global_before_capture, path_before_capture)
|
@@ -84,8 +85,8 @@ class Wraith::SaveImages
|
|
84
85
|
attempt_image_capture(command, filename)
|
85
86
|
end
|
86
87
|
rescue => e
|
87
|
-
logger.error e
|
88
|
-
create_invalid_image(filename, width)
|
88
|
+
logger.error "#{e}\n URL = #{url}"
|
89
|
+
create_invalid_image(filename, width, invalid_image_name)
|
89
90
|
end
|
90
91
|
end
|
91
92
|
end
|
@@ -95,12 +96,16 @@ class Wraith::SaveImages
|
|
95
96
|
case meta.engine
|
96
97
|
when "chrome"
|
97
98
|
options = Selenium::WebDriver::Chrome::Options.new
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
99
|
+
[
|
100
|
+
'disable-gpu',
|
101
|
+
'headless',
|
102
|
+
'no-sandbox',
|
103
|
+
'device-scale-factor=1',
|
104
|
+
'force-device-scale-factor',
|
105
|
+
'window-size=1200,1500',
|
106
|
+
'hide-scrollbars',
|
107
|
+
'ignore-certificate-errors'
|
108
|
+
].each { |arg| options.add_argument("--#{arg}") }
|
104
109
|
Selenium::WebDriver.for :chrome, options: options
|
105
110
|
end
|
106
111
|
end
|
@@ -110,7 +115,7 @@ class Wraith::SaveImages
|
|
110
115
|
width = driver.execute_script("return Math.max(document.body.scrollWidth, document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth);")
|
111
116
|
height = driver.execute_script("return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);")
|
112
117
|
driver.manage.window.resize_to(width, height)
|
113
|
-
end
|
118
|
+
end
|
114
119
|
|
115
120
|
# crop an image around the coordinates of an element
|
116
121
|
def crop_selector driver, selector, image_location
|
@@ -122,16 +127,25 @@ class Wraith::SaveImages
|
|
122
127
|
|
123
128
|
def capture_image_selenium(screen_sizes, url, file_name, selector, global_before_capture, path_before_capture)
|
124
129
|
driver = get_driver
|
130
|
+
driver.manage.timeouts.implicit_wait = 10;
|
125
131
|
screen_sizes.to_s.split(",").each do |screen_size|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
132
|
+
for attempt in 1..3 do
|
133
|
+
begin
|
134
|
+
width, height = screen_size.split("x")
|
135
|
+
new_file_name = file_name.sub('MULTI', screen_size)
|
136
|
+
driver.manage.window.resize_to(width, height || 1500)
|
137
|
+
driver.navigate.to url
|
138
|
+
driver.manage.timeouts.implicit_wait = wraith.settle
|
139
|
+
driver.execute_script(File.read(global_before_capture)) if global_before_capture
|
140
|
+
driver.execute_script(File.read(path_before_capture)) if path_before_capture
|
141
|
+
resize_to_fit_page(driver) unless height
|
142
|
+
driver.save_screenshot(new_file_name)
|
143
|
+
crop_selector(driver, selector, new_file_name) if selector && selector.length > 0
|
144
|
+
break
|
145
|
+
rescue Net::ReadTimeout => e
|
146
|
+
logger.error "Got #{e} on attempt #{attempt} at screen size #{screensize}. URL = #{url}"
|
147
|
+
end
|
148
|
+
end
|
135
149
|
end
|
136
150
|
driver.quit
|
137
151
|
end
|
@@ -163,9 +177,9 @@ class Wraith::SaveImages
|
|
163
177
|
wraith.resize or File.exist? filename
|
164
178
|
end
|
165
179
|
|
166
|
-
def create_invalid_image(filename, width)
|
180
|
+
def create_invalid_image(filename, width, invalid_image_name)
|
167
181
|
logger.warn "Using fallback image instead"
|
168
|
-
invalid = File.expand_path("../../assets
|
182
|
+
invalid = File.expand_path("../../assets/#{invalid_image_name}", File.dirname(__FILE__))
|
169
183
|
FileUtils.cp invalid, filename
|
170
184
|
|
171
185
|
set_image_width(filename, width)
|
data/lib/wraith/version.rb
CHANGED
data/lib/wraith/wraith.rb
CHANGED
@@ -72,7 +72,7 @@ class Wraith::Wraith
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def history_dir
|
75
|
-
@config
|
75
|
+
@config.fetch('history_dir', false)
|
76
76
|
end
|
77
77
|
|
78
78
|
def engine
|
@@ -109,7 +109,7 @@ class Wraith::Wraith
|
|
109
109
|
|
110
110
|
def resize
|
111
111
|
# @TODO make this default to true, once it's been tested a bit more thoroughly
|
112
|
-
@config
|
112
|
+
@config.fetch('resize_or_reload', 'reload') == "resize"
|
113
113
|
end
|
114
114
|
|
115
115
|
def domains
|
@@ -132,8 +132,16 @@ class Wraith::Wraith
|
|
132
132
|
domains.keys[1]
|
133
133
|
end
|
134
134
|
|
135
|
+
def settle
|
136
|
+
@config.fetch('settle', 10)
|
137
|
+
end
|
138
|
+
|
139
|
+
def threads
|
140
|
+
@config.fetch('threads', '8').to_i
|
141
|
+
end
|
142
|
+
|
135
143
|
def spider_file
|
136
|
-
@config
|
144
|
+
@config.fetch('spider_file', 'spider.txt')
|
137
145
|
end
|
138
146
|
|
139
147
|
def spider_days
|
@@ -157,7 +165,7 @@ class Wraith::Wraith
|
|
157
165
|
end
|
158
166
|
|
159
167
|
def highlight_color
|
160
|
-
@config
|
168
|
+
@config.fetch('highlight_color', 'blue')
|
161
169
|
end
|
162
170
|
|
163
171
|
def mode
|
@@ -169,34 +177,19 @@ class Wraith::Wraith
|
|
169
177
|
end
|
170
178
|
|
171
179
|
def threshold
|
172
|
-
@config
|
180
|
+
@config.fetch('threshold', 0)
|
173
181
|
end
|
174
182
|
|
175
183
|
def gallery_template
|
176
|
-
|
177
|
-
if @config["gallery"].nil?
|
178
|
-
default
|
179
|
-
else
|
180
|
-
@config["gallery"]["template"] || default
|
181
|
-
end
|
184
|
+
@config.fetch('gallery', {}).fetch('template', 'basic_template')
|
182
185
|
end
|
183
186
|
|
184
187
|
def thumb_height
|
185
|
-
|
186
|
-
if @config["gallery"].nil?
|
187
|
-
default
|
188
|
-
else
|
189
|
-
@config["gallery"]["thumb_height"] || default
|
190
|
-
end
|
188
|
+
@config.fetch('gallery', {}).fetch('thumb_height', 200)
|
191
189
|
end
|
192
190
|
|
193
191
|
def thumb_width
|
194
|
-
|
195
|
-
if @config["gallery"].nil?
|
196
|
-
default
|
197
|
-
else
|
198
|
-
@config["gallery"]["thumb_width"] || default
|
199
|
-
end
|
192
|
+
@config.fetch('gallery', {}).fetch('thumb_width', 200)
|
200
193
|
end
|
201
194
|
|
202
195
|
def phantomjs_options
|
@@ -204,11 +197,11 @@ class Wraith::Wraith
|
|
204
197
|
end
|
205
198
|
|
206
199
|
def imports
|
207
|
-
@config
|
200
|
+
@config.fetch('imports', false)
|
208
201
|
end
|
209
202
|
|
210
203
|
def verbose
|
211
204
|
# @TODO - also add a `--verbose` CLI flag which overrides whatever you have set in the config
|
212
|
-
@config
|
205
|
+
@config.fetch('verbose', false)
|
213
206
|
end
|
214
207
|
end
|
data/spec/_helpers.rb
CHANGED
data/spec/config_spec.rb
CHANGED
@@ -17,6 +17,26 @@ describe "wraith config" do
|
|
17
17
|
expect(wraith.config).to include "directory" => "shots"
|
18
18
|
end
|
19
19
|
|
20
|
+
it 'returns default values for threads' do
|
21
|
+
expect(wraith.threads).to eq 8
|
22
|
+
end
|
23
|
+
it 'returns default values for settle' do
|
24
|
+
expect(wraith.settle).to eq 10
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'non-standard config values' do
|
28
|
+
let(:config) { YAML.load "browser: phantomjs\nthreads: 2\nsettle: 5"}
|
29
|
+
let(:non_standard_wraith) { Wraith::Wraith.new( config, { yaml_passed: true }) }
|
30
|
+
|
31
|
+
it 'returns overridden value when threads is specified in config' do
|
32
|
+
expect(non_standard_wraith.threads).to eq 2
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'returns overridden value when settle is specified in config' do
|
36
|
+
expect(non_standard_wraith.settle).to eq 5
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
20
40
|
it "should be able to import other configs" do
|
21
41
|
config_name = get_path_relative_to __FILE__, "./configs/test_config--imports.yaml"
|
22
42
|
wraith = Wraith::Wraith.new(config_name)
|
data/spec/js/global--chrome.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
2
|
-
document.body.innerHTML = " ";
|
3
|
-
document.body.style['background-color'] = 'red';
|
4
|
-
|
1
|
+
(function () {
|
2
|
+
document.body.innerHTML = " ";
|
3
|
+
document.body.style['background-color'] = 'red';
|
4
|
+
})();
|
data/spec/js/path--chrome.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
2
|
-
document.body.innerHTML = " ";
|
3
|
-
document.body.style['background-color'] = 'green';
|
4
|
-
|
1
|
+
(function () {
|
2
|
+
document.body.innerHTML = " ";
|
3
|
+
document.body.style['background-color'] = 'green';
|
4
|
+
})();
|
data/spec/resize_reload_spec.rb
CHANGED
@@ -21,6 +21,8 @@ describe "wraith config" do
|
|
21
21
|
test: http://www.bbc.com
|
22
22
|
paths:
|
23
23
|
test: /mypage
|
24
|
+
directory:
|
25
|
+
test
|
24
26
|
screen_widths:
|
25
27
|
- 320
|
26
28
|
- 464
|
@@ -41,10 +43,10 @@ describe "wraith config" do
|
|
41
43
|
expect(efficient_jobs.length).to be 1
|
42
44
|
expect(inefficient_jobs.length).to be 3 # 1 for each screen width
|
43
45
|
|
44
|
-
# [["test", "/mypage", "320,464,624", "http://www.bbc.com/mypage", "
|
46
|
+
# [["test", "/mypage", "320,464,624", "http://www.bbc.com/mypage", "test/MULTI__test.png", " ", "false", "false"]]
|
45
47
|
expect(efficient_jobs[0][2]).to eq "320,464,624"
|
46
48
|
|
47
|
-
# [["test", "/mypage", 320, "http://www.bbc.com/mypage", "
|
49
|
+
# [["test", "/mypage", 320, "http://www.bbc.com/mypage", "test/320__test.png", " ", "false", "false"], ["test", "/mypage", 464, "http://www.bbc.com/mypage", "/test/464__test.png", " ", "false", "false"], ["test", "/mypage", 624, "http://www.bbc.com/mypage", "/test/624__test.png", " ", "false", "false"]]
|
48
50
|
expect(inefficient_jobs[0][2]).to eq 320
|
49
51
|
end
|
50
52
|
end
|
@@ -59,3 +59,7 @@ gallery:
|
|
59
59
|
# diffs_only - only paths with a difference are shown, sorted by difference size (largest first)
|
60
60
|
# Note: different screen widths are always grouped together.
|
61
61
|
mode: diffs_first
|
62
|
+
|
63
|
+
# (optional) Set the number of threads to use when saving images. Raising this value can improve performance, but very high
|
64
|
+
# values can lead to server connection issues. Set to around 1.5 the available CPU cores for best performance. Default: 8
|
65
|
+
threads: 8
|
@@ -79,3 +79,7 @@ highlight_color: red
|
|
79
79
|
|
80
80
|
# (optional) Parameters to pass to Phantom/Casper command line. Default: '--ignore-ssl-errors=true --ssl-protocol=tlsv1'
|
81
81
|
phantomjs_options: ''
|
82
|
+
|
83
|
+
# (optional) Set the number of threads to use when saving images. Raising this value can improve performance, but very high
|
84
|
+
# values can lead to server connection issues. Set to around 1.5 the available CPU cores for best performance. Default: 8
|
85
|
+
threads: 8
|
@@ -58,3 +58,7 @@ directory: 'shots'
|
|
58
58
|
# diffs_first - all paths (with or without a difference) are shown, sorted by difference size (largest first)
|
59
59
|
# diffs_only - only paths with a difference are shown, sorted by difference size (largest first)
|
60
60
|
mode: diffs_first
|
61
|
+
|
62
|
+
# (optional) Set the number of threads to use when saving images. Raising this value can improve performance, but very high
|
63
|
+
# values can lead to server connection issues. Set to around 1.5 the available CPU cores for best performance. Default: 8
|
64
|
+
threads: 8
|
data/wraith.gemspec
CHANGED
@@ -8,17 +8,16 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Wraith::VERSION
|
9
9
|
spec.authors = ['Dave Blooman', 'Simon Thulbourn', 'Chris Ashton']
|
10
10
|
spec.email = ['david.blooman@gmail.com', 'simon+github@thulbourn.com', 'chrisashtonweb@gmail.com']
|
11
|
-
spec.summary = 'Wraith
|
11
|
+
spec.summary = 'Wraith screenshot comparison tool'
|
12
12
|
spec.description = 'Wraith is a screenshot comparison tool, created by developers at BBC News.'
|
13
13
|
spec.homepage = 'https://github.com/BBC-News/wraith'
|
14
|
-
spec.license = 'Apache
|
14
|
+
spec.license = 'Apache-2.0'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'pry'
|
22
21
|
spec.add_development_dependency 'rspec'
|
23
22
|
spec.add_development_dependency 'casperjs'
|
24
23
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wraith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.
|
4
|
+
version: 4.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Blooman
|
@@ -10,188 +10,174 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2019-06-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: pry
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
requirements:
|
19
|
-
- - '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :development
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
requirements:
|
26
|
-
- - '>='
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
version: '0'
|
29
15
|
- !ruby/object:Gem::Dependency
|
30
16
|
name: rspec
|
31
17
|
requirement: !ruby/object:Gem::Requirement
|
32
18
|
requirements:
|
33
|
-
- -
|
19
|
+
- - ">="
|
34
20
|
- !ruby/object:Gem::Version
|
35
21
|
version: '0'
|
36
22
|
type: :development
|
37
23
|
prerelease: false
|
38
24
|
version_requirements: !ruby/object:Gem::Requirement
|
39
25
|
requirements:
|
40
|
-
- -
|
26
|
+
- - ">="
|
41
27
|
- !ruby/object:Gem::Version
|
42
28
|
version: '0'
|
43
29
|
- !ruby/object:Gem::Dependency
|
44
30
|
name: casperjs
|
45
31
|
requirement: !ruby/object:Gem::Requirement
|
46
32
|
requirements:
|
47
|
-
- -
|
33
|
+
- - ">="
|
48
34
|
- !ruby/object:Gem::Version
|
49
35
|
version: '0'
|
50
36
|
type: :development
|
51
37
|
prerelease: false
|
52
38
|
version_requirements: !ruby/object:Gem::Requirement
|
53
39
|
requirements:
|
54
|
-
- -
|
40
|
+
- - ">="
|
55
41
|
- !ruby/object:Gem::Version
|
56
42
|
version: '0'
|
57
43
|
- !ruby/object:Gem::Dependency
|
58
44
|
name: rake
|
59
45
|
requirement: !ruby/object:Gem::Requirement
|
60
46
|
requirements:
|
61
|
-
- -
|
47
|
+
- - ">="
|
62
48
|
- !ruby/object:Gem::Version
|
63
49
|
version: '0'
|
64
50
|
type: :runtime
|
65
51
|
prerelease: false
|
66
52
|
version_requirements: !ruby/object:Gem::Requirement
|
67
53
|
requirements:
|
68
|
-
- -
|
54
|
+
- - ">="
|
69
55
|
- !ruby/object:Gem::Version
|
70
56
|
version: '0'
|
71
57
|
- !ruby/object:Gem::Dependency
|
72
58
|
name: image_size
|
73
59
|
requirement: !ruby/object:Gem::Requirement
|
74
60
|
requirements:
|
75
|
-
- -
|
61
|
+
- - ">="
|
76
62
|
- !ruby/object:Gem::Version
|
77
63
|
version: '0'
|
78
64
|
type: :runtime
|
79
65
|
prerelease: false
|
80
66
|
version_requirements: !ruby/object:Gem::Requirement
|
81
67
|
requirements:
|
82
|
-
- -
|
68
|
+
- - ">="
|
83
69
|
- !ruby/object:Gem::Version
|
84
70
|
version: '0'
|
85
71
|
- !ruby/object:Gem::Dependency
|
86
72
|
name: mini_magick
|
87
73
|
requirement: !ruby/object:Gem::Requirement
|
88
74
|
requirements:
|
89
|
-
- - ~>
|
75
|
+
- - "~>"
|
90
76
|
- !ruby/object:Gem::Version
|
91
77
|
version: '4.8'
|
92
78
|
type: :runtime
|
93
79
|
prerelease: false
|
94
80
|
version_requirements: !ruby/object:Gem::Requirement
|
95
81
|
requirements:
|
96
|
-
- - ~>
|
82
|
+
- - "~>"
|
97
83
|
- !ruby/object:Gem::Version
|
98
84
|
version: '4.8'
|
99
85
|
- !ruby/object:Gem::Dependency
|
100
86
|
name: anemone
|
101
87
|
requirement: !ruby/object:Gem::Requirement
|
102
88
|
requirements:
|
103
|
-
- -
|
89
|
+
- - ">="
|
104
90
|
- !ruby/object:Gem::Version
|
105
91
|
version: '0'
|
106
92
|
type: :runtime
|
107
93
|
prerelease: false
|
108
94
|
version_requirements: !ruby/object:Gem::Requirement
|
109
95
|
requirements:
|
110
|
-
- -
|
96
|
+
- - ">="
|
111
97
|
- !ruby/object:Gem::Version
|
112
98
|
version: '0'
|
113
99
|
- !ruby/object:Gem::Dependency
|
114
100
|
name: robotex
|
115
101
|
requirement: !ruby/object:Gem::Requirement
|
116
102
|
requirements:
|
117
|
-
- -
|
103
|
+
- - ">="
|
118
104
|
- !ruby/object:Gem::Version
|
119
105
|
version: '0'
|
120
106
|
type: :runtime
|
121
107
|
prerelease: false
|
122
108
|
version_requirements: !ruby/object:Gem::Requirement
|
123
109
|
requirements:
|
124
|
-
- -
|
110
|
+
- - ">="
|
125
111
|
- !ruby/object:Gem::Version
|
126
112
|
version: '0'
|
127
113
|
- !ruby/object:Gem::Dependency
|
128
114
|
name: log4r
|
129
115
|
requirement: !ruby/object:Gem::Requirement
|
130
116
|
requirements:
|
131
|
-
- -
|
117
|
+
- - ">="
|
132
118
|
- !ruby/object:Gem::Version
|
133
119
|
version: '0'
|
134
120
|
type: :runtime
|
135
121
|
prerelease: false
|
136
122
|
version_requirements: !ruby/object:Gem::Requirement
|
137
123
|
requirements:
|
138
|
-
- -
|
124
|
+
- - ">="
|
139
125
|
- !ruby/object:Gem::Version
|
140
126
|
version: '0'
|
141
127
|
- !ruby/object:Gem::Dependency
|
142
128
|
name: thor
|
143
129
|
requirement: !ruby/object:Gem::Requirement
|
144
130
|
requirements:
|
145
|
-
- -
|
131
|
+
- - ">="
|
146
132
|
- !ruby/object:Gem::Version
|
147
133
|
version: '0'
|
148
134
|
type: :runtime
|
149
135
|
prerelease: false
|
150
136
|
version_requirements: !ruby/object:Gem::Requirement
|
151
137
|
requirements:
|
152
|
-
- -
|
138
|
+
- - ">="
|
153
139
|
- !ruby/object:Gem::Version
|
154
140
|
version: '0'
|
155
141
|
- !ruby/object:Gem::Dependency
|
156
142
|
name: parallel
|
157
143
|
requirement: !ruby/object:Gem::Requirement
|
158
144
|
requirements:
|
159
|
-
- -
|
145
|
+
- - ">="
|
160
146
|
- !ruby/object:Gem::Version
|
161
147
|
version: '0'
|
162
148
|
type: :runtime
|
163
149
|
prerelease: false
|
164
150
|
version_requirements: !ruby/object:Gem::Requirement
|
165
151
|
requirements:
|
166
|
-
- -
|
152
|
+
- - ">="
|
167
153
|
- !ruby/object:Gem::Version
|
168
154
|
version: '0'
|
169
155
|
- !ruby/object:Gem::Dependency
|
170
156
|
name: selenium-webdriver
|
171
157
|
requirement: !ruby/object:Gem::Requirement
|
172
158
|
requirements:
|
173
|
-
- - ~>
|
159
|
+
- - "~>"
|
174
160
|
- !ruby/object:Gem::Version
|
175
161
|
version: '3.5'
|
176
162
|
type: :runtime
|
177
163
|
prerelease: false
|
178
164
|
version_requirements: !ruby/object:Gem::Requirement
|
179
165
|
requirements:
|
180
|
-
- - ~>
|
166
|
+
- - "~>"
|
181
167
|
- !ruby/object:Gem::Version
|
182
168
|
version: '3.5'
|
183
169
|
- !ruby/object:Gem::Dependency
|
184
170
|
name: chromedriver-helper
|
185
171
|
requirement: !ruby/object:Gem::Requirement
|
186
172
|
requirements:
|
187
|
-
- - ~>
|
173
|
+
- - "~>"
|
188
174
|
- !ruby/object:Gem::Version
|
189
175
|
version: '1.1'
|
190
176
|
type: :runtime
|
191
177
|
prerelease: false
|
192
178
|
version_requirements: !ruby/object:Gem::Requirement
|
193
179
|
requirements:
|
194
|
-
- - ~>
|
180
|
+
- - "~>"
|
195
181
|
- !ruby/object:Gem::Version
|
196
182
|
version: '1.1'
|
197
183
|
description: Wraith is a screenshot comparison tool, created by developers at BBC
|
@@ -205,19 +191,20 @@ executables:
|
|
205
191
|
extensions: []
|
206
192
|
extra_rdoc_files: []
|
207
193
|
files:
|
208
|
-
- .gemset
|
209
|
-
- .github/CONTRIBUTING.md
|
210
|
-
- .github/ISSUE_TEMPLATE.md
|
211
|
-
- .gitignore
|
212
|
-
- .rubocop.yml
|
213
|
-
- .ruby-version
|
214
|
-
- .travis.yml
|
194
|
+
- ".gemset"
|
195
|
+
- ".github/CONTRIBUTING.md"
|
196
|
+
- ".github/ISSUE_TEMPLATE.md"
|
197
|
+
- ".gitignore"
|
198
|
+
- ".rubocop.yml"
|
199
|
+
- ".ruby-version"
|
200
|
+
- ".travis.yml"
|
215
201
|
- Dockerfile
|
216
202
|
- Gemfile
|
217
203
|
- LICENSE
|
218
204
|
- README.md
|
219
205
|
- Rakefile
|
220
|
-
- assets/
|
206
|
+
- assets/invalid1.jpg
|
207
|
+
- assets/invalid2.jpg
|
221
208
|
- assets/wraith-logo.png
|
222
209
|
- bin/wraith
|
223
210
|
- lib/wraith.rb
|
@@ -283,7 +270,7 @@ files:
|
|
283
270
|
- wraith.gemspec
|
284
271
|
homepage: https://github.com/BBC-News/wraith
|
285
272
|
licenses:
|
286
|
-
- Apache
|
273
|
+
- Apache-2.0
|
287
274
|
metadata: {}
|
288
275
|
post_install_message:
|
289
276
|
rdoc_options: []
|
@@ -291,20 +278,20 @@ require_paths:
|
|
291
278
|
- lib
|
292
279
|
required_ruby_version: !ruby/object:Gem::Requirement
|
293
280
|
requirements:
|
294
|
-
- -
|
281
|
+
- - ">="
|
295
282
|
- !ruby/object:Gem::Version
|
296
283
|
version: '0'
|
297
284
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
298
285
|
requirements:
|
299
|
-
- -
|
286
|
+
- - ">="
|
300
287
|
- !ruby/object:Gem::Version
|
301
288
|
version: '0'
|
302
289
|
requirements: []
|
303
290
|
rubyforge_project:
|
304
|
-
rubygems_version: 2.
|
291
|
+
rubygems_version: 2.7.10
|
305
292
|
signing_key:
|
306
293
|
specification_version: 4
|
307
|
-
summary: Wraith
|
294
|
+
summary: Wraith screenshot comparison tool
|
308
295
|
test_files:
|
309
296
|
- spec/_helpers.rb
|
310
297
|
- spec/base/global.png
|
data/assets/invalid.jpg
DELETED
Binary file
|