wraith 1.2.1 → 1.2.2
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/Rakefile +14 -14
- data/lib/wraith.rb +2 -3
- data/lib/wraith/cli.rb +10 -10
- data/lib/wraith/compare_images.rb +3 -3
- data/lib/wraith/crop.rb +2 -2
- data/lib/wraith/folder.rb +3 -3
- data/lib/wraith/gallery.rb +13 -13
- data/lib/wraith/gallery_template/gallery_template.erb +1 -1
- data/lib/wraith/save_images.rb +7 -7
- data/lib/wraith/thumbnails.rb +1 -1
- data/lib/wraith/version.rb +1 -1
- data/lib/wraith/wraith.rb +3 -3
- data/spec/wraith_spec.rb +22 -27
- data/wraith.gemspec +17 -17
- metadata +2 -3
- data/lib/wraith/error.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6737fd591c334bd813dbc07970efe9bea443d762
|
4
|
+
data.tar.gz: c1191e025c5fb12056dd8fa15b45a4be5c8027a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a633654b6891f6803e074dffdd3ce37be5b55be336dbe33dfc0872dd16ec07d64878f779a1667e7b67eb864f5447d6eb3ca0e29f44f9b492a74bd2091653e8a2
|
7
|
+
data.tar.gz: 80cd0a7d9f9ed8216ab2e9b368f8c44c1e562a7a06dead497096a4f4a8e7d3e2ea27e007c64f02e2585c4262cf4e8e243c799277720637577fcd44f7de967e5f
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
|
2
2
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'wraith/save_images'
|
@@ -12,15 +12,15 @@ require 'wraith/gallery'
|
|
12
12
|
|
13
13
|
@config = ('config')
|
14
14
|
|
15
|
-
desc
|
16
|
-
task :config, [:yaml] do |
|
17
|
-
custom.with_defaults(:
|
15
|
+
desc 'Execute wraith on two sites with a config you specify'
|
16
|
+
task :config, [:yaml] do |_t, custom|
|
17
|
+
custom.with_defaults(yaml: 'config')
|
18
18
|
@config = "#{custom[:yaml]}"
|
19
|
-
Rake::Task[
|
19
|
+
Rake::Task['default'].invoke
|
20
20
|
end
|
21
21
|
|
22
|
-
task :
|
23
|
-
puts 'Done!'
|
22
|
+
task default: [:reset_shots_folder, :check_for_paths, :setup_folders, :save_images, :check_images, :crop_images, :compare_images, :generate_thumbnails, :generate_gallery] do
|
23
|
+
puts 'Done!'
|
24
24
|
end
|
25
25
|
|
26
26
|
task :reset_shots_folder do
|
@@ -68,14 +68,14 @@ task :generate_gallery do
|
|
68
68
|
gallery.generate_gallery
|
69
69
|
end
|
70
70
|
|
71
|
-
desc
|
72
|
-
task :grabber, [:yaml] do |
|
73
|
-
custom.with_defaults(:
|
71
|
+
desc 'Execute wraith on a single site, no image diffs, with a config you specify'
|
72
|
+
task :grabber, [:yaml] do |_t, custom|
|
73
|
+
custom.with_defaults(yaml: 'config')
|
74
74
|
@config = "#{custom[:yaml]}"
|
75
|
-
Rake::Task[
|
75
|
+
Rake::Task['grab'].invoke
|
76
76
|
end
|
77
77
|
|
78
|
-
desc
|
79
|
-
task :
|
80
|
-
puts 'Done!'
|
78
|
+
desc 'Execute wraith on a single site, no image diffs'
|
79
|
+
task grab: [:reset_shots_folder, :check_for_paths, :setup_folders, :save_images, :generate_thumbnails, :generate_gallery] do
|
80
|
+
puts 'Done!'
|
81
81
|
end
|
data/lib/wraith.rb
CHANGED
data/lib/wraith/cli.rb
CHANGED
@@ -18,19 +18,19 @@ class Wraith::CLI < Thor
|
|
18
18
|
File.expand_path('../../../templates/', __FILE__)
|
19
19
|
end
|
20
20
|
|
21
|
-
desc
|
21
|
+
desc 'setup', 'creates config folder and default config'
|
22
22
|
def setup
|
23
23
|
template('configs/config.yaml', 'configs/config.yaml')
|
24
24
|
template('javascript/snap.js', 'javascript/snap.js')
|
25
25
|
end
|
26
26
|
|
27
|
-
desc
|
27
|
+
desc 'reset_shots [config_name]', 'removes all the files in the shots folder'
|
28
28
|
def reset_shots(config_name)
|
29
29
|
reset = Wraith::FolderManager.new(config_name)
|
30
30
|
reset.clear_shots_folder
|
31
31
|
end
|
32
32
|
|
33
|
-
desc
|
33
|
+
desc 'setup_folders [config_name]', 'create folders for images'
|
34
34
|
def setup_folders(config_name)
|
35
35
|
create = Wraith::FolderManager.new(config_name)
|
36
36
|
create.create_folders
|
@@ -48,38 +48,38 @@ class Wraith::CLI < Thor
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
desc
|
51
|
+
desc 'save_images [config_name]', 'captures screenshots'
|
52
52
|
def save_images(config_name)
|
53
53
|
save_images = Wraith::SaveImages.new(config_name)
|
54
54
|
save_images.save_images
|
55
55
|
end
|
56
56
|
|
57
|
-
desc
|
57
|
+
desc 'crop_images [config_name]', 'crops images to the same height'
|
58
58
|
def crop_images(config_name)
|
59
59
|
crop = Wraith::CropImages.new(config_name)
|
60
60
|
crop.crop_images
|
61
61
|
end
|
62
62
|
|
63
|
-
desc
|
63
|
+
desc 'compare_images [config_name]', 'compares images to generate diffs'
|
64
64
|
def compare_images(config_name)
|
65
65
|
compare = Wraith::CompareImages.new(config_name)
|
66
66
|
compare.compare_images
|
67
67
|
end
|
68
68
|
|
69
|
-
desc
|
69
|
+
desc 'generate_thumbnails [config_name]', 'create thumbnails for gallery'
|
70
70
|
def generate_thumbnails(config_name)
|
71
71
|
thumbs = Wraith::Thumbnails.new(config_name)
|
72
72
|
thumbs.generate_thumbnails
|
73
73
|
end
|
74
74
|
|
75
|
-
desc
|
75
|
+
desc 'generate_gallery [config_name]', 'create page for viewing images'
|
76
76
|
def generate_gallery(config_name)
|
77
77
|
gallery = Wraith::GalleryGenerator.new(config_name)
|
78
78
|
gallery.generate_gallery
|
79
|
-
puts
|
79
|
+
puts 'Gallery generated'
|
80
80
|
end
|
81
81
|
|
82
|
-
desc
|
82
|
+
desc 'capture [config_name]', 'A full Wraith job'
|
83
83
|
def capture(config)
|
84
84
|
reset_shots(config)
|
85
85
|
check_for_paths(config)
|
@@ -12,7 +12,7 @@ class Wraith::CompareImages
|
|
12
12
|
|
13
13
|
def compare_images
|
14
14
|
files = Dir.glob("#{wraith.directory}/*/*.png").sort
|
15
|
-
Parallel.each(files.each_slice(2), :
|
15
|
+
Parallel.each(files.each_slice(2), in_processes: Parallel.processor_count) do |base, compare|
|
16
16
|
diff = base.gsub(/([a-z0-9]+).png$/, 'diff.png')
|
17
17
|
info = base.gsub(/([a-z0-9]+).png$/, 'data.txt')
|
18
18
|
compare_task(base, compare, diff, info)
|
@@ -29,12 +29,12 @@ class Wraith::CompareImages
|
|
29
29
|
|
30
30
|
def compare_task(base, compare, output, info)
|
31
31
|
cmdline = "compare -dissimilarity-threshold 1 -fuzz #{wraith.fuzz} -metric AE -highlight-color blue #{base} #{compare} #{output}"
|
32
|
-
px_value = Open3.popen3(cmdline) { |
|
32
|
+
px_value = Open3.popen3(cmdline) { |_stdin, _stdout, stderr, _wait_thr| stderr.read }.to_f
|
33
33
|
begin
|
34
34
|
img_size = ImageSize.path(output).size.inject(:*)
|
35
35
|
percentage(img_size, px_value, info)
|
36
36
|
rescue
|
37
|
-
File.open(info, 'w') { |file| file.write(
|
37
|
+
File.open(info, 'w') { |file| file.write('invalid') } unless File.exist?(output)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
data/lib/wraith/crop.rb
CHANGED
@@ -12,7 +12,7 @@ class Wraith::CropImages
|
|
12
12
|
def crop_images
|
13
13
|
files = Dir.glob("#{wraith.directory}/*/*.png").sort
|
14
14
|
|
15
|
-
Parallel.each(files.each_slice(2), :
|
15
|
+
Parallel.each(files.each_slice(2), in_processes: Parallel.processor_count) do |base, compare|
|
16
16
|
puts 'cropping images'
|
17
17
|
|
18
18
|
base_height = image_height(base)
|
@@ -33,7 +33,7 @@ class Wraith::CropImages
|
|
33
33
|
def image_height(image)
|
34
34
|
File.open(image, 'rb') do |fh|
|
35
35
|
size = ImageSize.new(fh.read).size
|
36
|
-
|
36
|
+
size[1]
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
data/lib/wraith/folder.rb
CHANGED
@@ -31,9 +31,9 @@ class Wraith::FolderManager
|
|
31
31
|
|
32
32
|
def create_folders
|
33
33
|
spider_paths.each do |folder_label, path|
|
34
|
-
|
35
|
-
path = folder_label
|
36
|
-
folder_label = path.gsub('/', '_')
|
34
|
+
unless path
|
35
|
+
path = folder_label
|
36
|
+
folder_label = path.gsub('/', '_')
|
37
37
|
end
|
38
38
|
|
39
39
|
FileUtils.mkdir_p("#{dir}/thumbnails/#{folder_label}")
|
data/lib/wraith/gallery.rb
CHANGED
@@ -38,13 +38,13 @@ class Wraith::GalleryGenerator
|
|
38
38
|
@dirs[category] = {}
|
39
39
|
Dir.foreach("#{dirname}/#{category}") do |filename|
|
40
40
|
match = MATCH_FILENAME.match(filename)
|
41
|
-
|
41
|
+
unless match.nil?
|
42
42
|
size = match[1].to_i
|
43
43
|
group = match[2]
|
44
|
-
filepath = category +
|
44
|
+
filepath = category + '/' + filename
|
45
45
|
thumbnail = "thumbnails/#{category}/#{filename}"
|
46
46
|
|
47
|
-
|
47
|
+
if @dirs[category][size].nil?
|
48
48
|
@dirs[category][size] = { variants: [] }
|
49
49
|
end
|
50
50
|
size_dict = @dirs[category][size]
|
@@ -52,31 +52,31 @@ class Wraith::GalleryGenerator
|
|
52
52
|
case group
|
53
53
|
when 'diff'
|
54
54
|
size_dict[:diff] = {
|
55
|
-
|
55
|
+
filename: filepath, thumb: thumbnail
|
56
56
|
}
|
57
57
|
when 'data'
|
58
58
|
size_dict[:data] = File.read("#{dirname}/#{filepath}")
|
59
59
|
else
|
60
60
|
size_dict[:variants] << {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
61
|
+
name: group,
|
62
|
+
filename: filepath,
|
63
|
+
thumb: thumbnail
|
64
|
+
}
|
65
65
|
|
66
66
|
end
|
67
67
|
size_dict[:variants].sort! { |a, b| a[:name] <=> b[:name] }
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
71
|
-
|
71
|
+
@dirs
|
72
72
|
end
|
73
73
|
|
74
74
|
def generate_html(location, directories, template, destination, path)
|
75
75
|
template = File.read(template)
|
76
76
|
locals = {
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
location: location,
|
78
|
+
directories: directories,
|
79
|
+
path: path
|
80
80
|
}
|
81
81
|
html = ERB.new(template).result(ErbBinding.new(locals).get_binding)
|
82
82
|
File.open(destination, 'w') do |outf|
|
@@ -84,7 +84,7 @@ class Wraith::GalleryGenerator
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
-
def generate_gallery(withPath=
|
87
|
+
def generate_gallery(withPath = '')
|
88
88
|
dest = "#{@location}/gallery.html"
|
89
89
|
directories = parse_directories(@location)
|
90
90
|
generate_html(@location, directories, TEMPLATE_BY_DOMAIN_LOCATION, dest, withPath)
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<body>
|
13
13
|
<div class="container">
|
14
14
|
<div class="row page-header">
|
15
|
-
<h1>List of screenshots for <%= location %>
|
15
|
+
<h1>List of screenshots for <%= location %> <small>taken <%= Time.now.strftime('%Y/%m/%d %H:%M:%S') %></small></h1>
|
16
16
|
</div>
|
17
17
|
<div class="row">
|
18
18
|
<!-- <%= directories.length %> -->
|
data/lib/wraith/save_images.rb
CHANGED
@@ -22,7 +22,7 @@ class Wraith::SaveImages
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def engine
|
25
|
-
wraith.engine.each { |
|
25
|
+
wraith.engine.each { |_label, browser| return browser }
|
26
26
|
end
|
27
27
|
|
28
28
|
def base_urls(path)
|
@@ -43,16 +43,16 @@ class Wraith::SaveImages
|
|
43
43
|
|
44
44
|
return if File.exist? filename
|
45
45
|
|
46
|
-
puts "Failed to capture image #{filename} on attempt number #{i+1} of #{max_attempts}"
|
46
|
+
puts "Failed to capture image #{filename} on attempt number #{i + 1} of #{max_attempts}"
|
47
47
|
end
|
48
48
|
|
49
|
-
|
49
|
+
fail "Unable to capture image #{filename} after #{max_attempts} attempt(s)"
|
50
50
|
end
|
51
51
|
|
52
52
|
def save_images
|
53
53
|
jobs = []
|
54
54
|
check_paths.each do |label, path|
|
55
|
-
|
55
|
+
unless path
|
56
56
|
path = label
|
57
57
|
label = path.gsub('/', '_')
|
58
58
|
end
|
@@ -69,13 +69,13 @@ class Wraith::SaveImages
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
Parallel.each(jobs, :
|
72
|
+
Parallel.each(jobs, in_threads: 8) do |_label, _path, width, url, filename|
|
73
73
|
begin
|
74
74
|
attempt_image_capture(width, url, filename, 5)
|
75
|
-
rescue
|
75
|
+
rescue => e
|
76
76
|
puts e
|
77
77
|
|
78
|
-
puts
|
78
|
+
puts 'Using fallback image instead'
|
79
79
|
invalid = File.expand_path('../../assets/invalid.jpg', File.dirname(__FILE__))
|
80
80
|
FileUtils.cp invalid, filename
|
81
81
|
|
data/lib/wraith/thumbnails.rb
CHANGED
@@ -13,7 +13,7 @@ class Wraith::Thumbnails
|
|
13
13
|
|
14
14
|
files = Dir.glob("#{wraith.directory}/*/*.png")
|
15
15
|
|
16
|
-
Parallel.each(files, :
|
16
|
+
Parallel.each(files, in_processes: Parallel.processor_count) do |filename|
|
17
17
|
new_name = filename.gsub(/^#{wraith.directory}/, "#{wraith.directory}/thumbnails")
|
18
18
|
wraith.thumbnail_image(filename, new_name)
|
19
19
|
end
|
data/lib/wraith/version.rb
CHANGED
data/lib/wraith/wraith.rb
CHANGED
@@ -4,7 +4,7 @@ class Wraith::Wraith
|
|
4
4
|
attr_accessor :config
|
5
5
|
|
6
6
|
def initialize(config_name)
|
7
|
-
@config = YAML
|
7
|
+
@config = YAML.load(File.open("configs/#{config_name}.yaml"))
|
8
8
|
end
|
9
9
|
|
10
10
|
def directory
|
@@ -69,7 +69,7 @@ class Wraith::Wraith
|
|
69
69
|
# puts `convert #{crop.gsub('/', '\\')} -background none -extent 0x#{height} #{crop.gsub('/', '\\')}`
|
70
70
|
end
|
71
71
|
|
72
|
-
def crop_images(
|
72
|
+
def crop_images(_crop, _height)
|
73
73
|
self.class.crop_images
|
74
74
|
end
|
75
75
|
|
@@ -82,6 +82,6 @@ class Wraith::Wraith
|
|
82
82
|
def thumbnail_image(png_path, output_path)
|
83
83
|
# For compatibility with windows file structures switch commenting on the following 2 lines
|
84
84
|
`convert #{png_path} -thumbnail 200 -crop 200x200+0+0 #{output_path}`
|
85
|
-
|
85
|
+
# `convert #{png_path.gsub('/', '\\')} -thumbnail 200 -crop 200x200+0+0 #{output_path}`
|
86
86
|
end
|
87
87
|
end
|
data/spec/wraith_spec.rb
CHANGED
@@ -1,58 +1,53 @@
|
|
1
1
|
require 'rspec-given'
|
2
|
-
require '
|
3
|
-
require '
|
2
|
+
require 'image_size'
|
3
|
+
require './lib/wraith/cli'
|
4
4
|
|
5
5
|
describe Wraith do
|
6
6
|
Given(:config_name) { 'test_config' }
|
7
|
-
Given {
|
8
|
-
Given(:test_url1) {
|
9
|
-
Given(:test_url2) {
|
7
|
+
Given { Wraith::FolderManager.new(config_name).clear_shots_folder }
|
8
|
+
Given(:test_url1) { 'http://www.live.bbc.co.uk/news' }
|
9
|
+
Given(:test_url2) { 'http://www.live.bbc.co.uk/russian' }
|
10
10
|
Given { Dir.mkdir('shots/test') }
|
11
11
|
Given(:test_image1) { 'shots/test/test1.png' }
|
12
12
|
Given(:test_image2) { 'shots/test/test2.png' }
|
13
13
|
Given(:diff_image) { 'shots/test/test_diff.png' }
|
14
14
|
Given(:data_txt) { 'shots/test/test.txt' }
|
15
15
|
|
16
|
-
When(:wraith) { Wraith.new(config_name) }
|
17
|
-
Then { wraith.is_a? Wraith }
|
16
|
+
When(:wraith) { Wraith::Wraith.new(config_name) }
|
17
|
+
Then { wraith.is_a? Wraith::Wraith }
|
18
18
|
|
19
|
-
context
|
20
|
-
When(:no_config) { Wraith.new }
|
21
|
-
Then { no_config.should have_failed(ArgumentError) }
|
19
|
+
context 'When creating a wraith worker' do
|
22
20
|
|
23
21
|
Then { wraith.config.keys.size == 8 }
|
24
22
|
Then { wraith.widths == [320, 600, 768, 1024, 1280] }
|
25
|
-
Then { wraith.base_domain ==
|
26
|
-
Then { wraith.comp_domain ==
|
27
|
-
Then { wraith.base_domain_label ==
|
28
|
-
Then { wraith.comp_domain_label ==
|
29
|
-
Then { wraith.paths == {
|
23
|
+
Then { wraith.base_domain == 'http://pal.live.bbc.com/news' }
|
24
|
+
Then { wraith.comp_domain == 'http://pal.live.bbc.co.uk/russian' }
|
25
|
+
Then { wraith.base_domain_label == 'english' }
|
26
|
+
Then { wraith.comp_domain_label == 'russian' }
|
27
|
+
Then { wraith.paths == { 'home' => '/', 'uk_index' => '/uk' } }
|
30
28
|
end
|
31
29
|
|
32
|
-
context
|
30
|
+
context 'When capturing an image' do
|
33
31
|
# capture_page_image
|
34
32
|
When do
|
35
|
-
wraith.engine.each do |
|
36
|
-
wraith.capture_page_image(
|
33
|
+
wraith.engine.each do |_type, engine|
|
34
|
+
wraith.capture_page_image(engine, test_url1, 320, test_image1)
|
37
35
|
end
|
38
36
|
end
|
39
37
|
When(:image_size) { ImageSize.path(test_image1).size }
|
40
38
|
Then { image_size[0] == 320 }
|
41
39
|
end
|
42
40
|
|
43
|
-
context
|
41
|
+
context 'When comparing images' do
|
44
42
|
When(:diff_image_size) do
|
45
|
-
wraith.engine.each do |
|
46
|
-
wraith.capture_page_image(
|
47
|
-
wraith.capture_page_image(
|
43
|
+
wraith.engine.each do |_type, engine|
|
44
|
+
wraith.capture_page_image(engine, test_url1, 320, test_image1)
|
45
|
+
wraith.capture_page_image(engine, test_url2, 320, test_image2)
|
48
46
|
end
|
49
|
-
|
50
|
-
|
47
|
+
Wraith::CropImages.new(config_name).crop_images
|
48
|
+
Wraith::CompareImages.new(config_name).compare_task(test_image1, test_image2, diff_image, data_txt)
|
51
49
|
ImageSize.path(diff_image).size
|
52
50
|
end
|
53
51
|
Then { diff_image_size[0] == 320 }
|
54
52
|
end
|
55
|
-
|
56
|
-
# crop_images
|
57
|
-
# thumbnail_image
|
58
53
|
end
|
data/wraith.gemspec
CHANGED
@@ -4,29 +4,29 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'wraith/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'wraith'
|
8
8
|
spec.version = Wraith::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Dave Blooman', 'Simon Thulbourn']
|
10
|
+
spec.email = ['david.blooman@gmail.com', 'simon+github@thulbourn.com']
|
11
11
|
spec.summary = 'Wraith is a screenshot comparison tool, created by developers at BBC News.'
|
12
12
|
spec.description = 'Wraith is a screenshot comparison tool, created by developers at BBC News.'
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = 'https://github.com/BBC-News/wraith'
|
14
|
+
spec.license = 'Apache 2'
|
15
15
|
|
16
|
-
spec.files = `git ls-files`.split(
|
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
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
21
|
+
spec.add_development_dependency 'pry'
|
22
|
+
spec.add_development_dependency 'rspec-given'
|
23
23
|
|
24
|
-
spec.add_runtime_dependency
|
25
|
-
spec.add_runtime_dependency
|
26
|
-
spec.add_runtime_dependency
|
27
|
-
spec.add_runtime_dependency
|
28
|
-
spec.add_runtime_dependency
|
29
|
-
spec.add_runtime_dependency
|
30
|
-
spec.add_runtime_dependency
|
31
|
-
spec.add_runtime_dependency
|
24
|
+
spec.add_runtime_dependency 'rake'
|
25
|
+
spec.add_runtime_dependency 'image_size'
|
26
|
+
spec.add_runtime_dependency 'anemone'
|
27
|
+
spec.add_runtime_dependency 'robotex'
|
28
|
+
spec.add_runtime_dependency 'nokogiri'
|
29
|
+
spec.add_runtime_dependency 'log4r'
|
30
|
+
spec.add_runtime_dependency 'thor'
|
31
|
+
spec.add_runtime_dependency 'parallel'
|
32
32
|
end
|
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: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Blooman
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
12
|
+
date: 2014-06-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pry
|
@@ -178,7 +178,6 @@ files:
|
|
178
178
|
- lib/wraith/cli.rb
|
179
179
|
- lib/wraith/compare_images.rb
|
180
180
|
- lib/wraith/crop.rb
|
181
|
-
- lib/wraith/error.rb
|
182
181
|
- lib/wraith/folder.rb
|
183
182
|
- lib/wraith/gallery.rb
|
184
183
|
- lib/wraith/gallery_template/bootstrap.min.css
|
data/lib/wraith/error.rb
DELETED