wgif 0.2.0 → 0.3.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/.travis.yml +1 -0
- data/README.md +27 -10
- data/Rakefile +8 -3
- data/lib/wgif.rb +10 -10
- data/lib/wgif/argument_parser.rb +94 -0
- data/lib/wgif/cli.rb +31 -87
- data/lib/wgif/download_bar.rb +0 -1
- data/lib/wgif/downloader.rb +23 -27
- data/lib/wgif/exceptions.rb +8 -25
- data/lib/wgif/gif_maker.rb +3 -1
- data/lib/wgif/installer.rb +2 -3
- data/lib/wgif/uploader.rb +7 -4
- data/lib/wgif/version.rb +1 -1
- data/lib/wgif/video.rb +17 -16
- data/lib/wgif/video_cache.rb +1 -4
- data/spec/integration/empty_image_list_spec.rb +18 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/unit/wgif/argument_parser_spec.rb +153 -0
- data/spec/unit/wgif/cli_spec.rb +98 -0
- data/spec/{wgif → unit/wgif}/download_bar_spec.rb +0 -0
- data/spec/{wgif → unit/wgif}/downloader_spec.rb +14 -9
- data/spec/{wgif → unit/wgif}/gif_maker_spec.rb +0 -0
- data/spec/{wgif → unit/wgif}/installer_spec.rb +45 -35
- data/spec/unit/wgif/uploader_spec.rb +48 -0
- data/spec/{wgif → unit/wgif}/video_cache_spec.rb +0 -0
- data/spec/{wgif → unit/wgif}/video_spec.rb +27 -22
- data/wgif.gemspec +22 -22
- metadata +37 -18
- data/spec/wgif/cli_spec.rb +0 -207
- data/spec/wgif/uploader_spec.rb +0 -44
File without changes
|
@@ -22,12 +22,14 @@ describe WGif::Downloader do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'throws an error if the video is not found' do
|
25
|
-
ViddlRb.should_receive(:get_urls).with(clip_url)
|
26
|
-
|
25
|
+
ViddlRb.should_receive(:get_urls).with(clip_url)
|
26
|
+
.and_return(['http://lol.wut'])
|
27
|
+
expect { downloader.get_video(clip_url) }
|
28
|
+
.to raise_error(WGif::VideoNotFoundException)
|
27
29
|
end
|
28
30
|
|
29
31
|
it 'extracts a YouTube ID from a URL' do
|
30
|
-
downloader.video_id(
|
32
|
+
downloader.video_id('http://lol.wut?v=id').should eq('id')
|
31
33
|
end
|
32
34
|
|
33
35
|
context 'downloading videos' do
|
@@ -36,7 +38,8 @@ describe WGif::Downloader do
|
|
36
38
|
ViddlRb.stub(:get_urls).and_return([clip_url])
|
37
39
|
fake_request = double('Typhoeus::Request')
|
38
40
|
fake_response = double('Typhoeus::Response')
|
39
|
-
Typhoeus::Request.should_receive(:new).once
|
41
|
+
Typhoeus::Request.should_receive(:new).once
|
42
|
+
.with(clip_url).and_return(fake_request)
|
40
43
|
fake_request.should_receive(:on_headers)
|
41
44
|
fake_request.should_receive(:on_body)
|
42
45
|
fake_request.should_receive(:run).and_return(fake_response)
|
@@ -45,9 +48,9 @@ describe WGif::Downloader do
|
|
45
48
|
|
46
49
|
it 'downloads a clip' do
|
47
50
|
video = double(name: 'video')
|
48
|
-
WGif::Video.should_receive(:new)
|
49
|
-
and_return(video)
|
50
|
-
|
51
|
+
WGif::Video.should_receive(:new)
|
52
|
+
.with('roflcopter', '/tmp/wgif/roflcopter').and_return(video)
|
53
|
+
downloader.get_video(clip_url)
|
51
54
|
end
|
52
55
|
|
53
56
|
it 'does not download the clip when already cached' do
|
@@ -60,11 +63,13 @@ describe WGif::Downloader do
|
|
60
63
|
|
61
64
|
it 'throws an exception when the download URL is not found' do
|
62
65
|
ViddlRb.stub(:get_urls).and_raise(RuntimeError)
|
63
|
-
expect{ downloader.video_url('invalid url') }
|
66
|
+
expect { downloader.video_url('invalid url') }
|
67
|
+
.to raise_error(WGif::VideoNotFoundException)
|
64
68
|
end
|
65
69
|
|
66
70
|
it 'throws an exception when the download URL is invalid' do
|
67
|
-
expect{ downloader.video_id(nil) }
|
71
|
+
expect { downloader.video_id(nil) }
|
72
|
+
.to raise_error(WGif::InvalidUrlException)
|
68
73
|
end
|
69
74
|
|
70
75
|
end
|
File without changes
|
@@ -16,14 +16,14 @@ describe WGif::Installer do
|
|
16
16
|
context 'checking for Homebrew' do
|
17
17
|
|
18
18
|
it 'finds Homebrew when it exists' do
|
19
|
-
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
20
|
-
and_return(true)
|
19
|
+
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
20
|
+
.and_return(true)
|
21
21
|
expect(installer.homebrew_installed?).to eq(true)
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'returns false when Homebrew does not exist' do
|
25
|
-
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
26
|
-
and_return(false)
|
25
|
+
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
26
|
+
.and_return(false)
|
27
27
|
expect(installer.homebrew_installed?).to eq(false)
|
28
28
|
end
|
29
29
|
|
@@ -32,18 +32,18 @@ describe WGif::Installer do
|
|
32
32
|
context 'checking for dependencies' do
|
33
33
|
|
34
34
|
it 'returns true if dependencies are installed' do
|
35
|
-
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
36
|
-
and_return(true)
|
37
|
-
expect(Kernel).to receive(:system).with('which convert > /dev/null')
|
38
|
-
and_return(true)
|
35
|
+
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
36
|
+
.and_return(true)
|
37
|
+
expect(Kernel).to receive(:system).with('which convert > /dev/null')
|
38
|
+
.and_return(true)
|
39
39
|
expect(installer.dependencies_installed?).to eq(true)
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'returns false if dependencies are not installed' do
|
43
|
-
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
44
|
-
and_return(true)
|
45
|
-
expect(Kernel).to receive(:system).with('which convert > /dev/null')
|
46
|
-
and_return(false)
|
43
|
+
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
44
|
+
.and_return(true)
|
45
|
+
expect(Kernel).to receive(:system).with('which convert > /dev/null')
|
46
|
+
.and_return(false)
|
47
47
|
expect(installer.dependencies_installed?).to eq(false)
|
48
48
|
end
|
49
49
|
|
@@ -52,23 +52,23 @@ describe WGif::Installer do
|
|
52
52
|
context 'installing dependencies' do
|
53
53
|
|
54
54
|
it 'does not install dependencies if they are found' do
|
55
|
-
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
56
|
-
and_return(true)
|
55
|
+
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
56
|
+
.and_return(true)
|
57
57
|
expect(Kernel).not_to receive(:system).with('brew install ffmpeg')
|
58
58
|
installer.install('ffmpeg', 'ffmpeg')
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'installs dependencies' do
|
62
|
-
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
63
|
-
and_return(false)
|
62
|
+
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
63
|
+
.and_return(false)
|
64
64
|
expect(Kernel).to receive(:system).with('brew install ffmpeg')
|
65
65
|
installer.install('ffmpeg', 'ffmpeg')
|
66
66
|
end
|
67
67
|
|
68
68
|
it 'has a list of its dependencies' do
|
69
|
-
expect(installer.class::DEPENDENCIES)
|
70
|
-
to eq([['ffmpeg', 'ffmpeg'],
|
71
|
-
|
69
|
+
expect(installer.class::DEPENDENCIES)
|
70
|
+
.to eq([['ffmpeg', 'ffmpeg'],
|
71
|
+
['imagemagick', 'convert']])
|
72
72
|
end
|
73
73
|
|
74
74
|
it 'checks if a dependency exists' do
|
@@ -81,26 +81,36 @@ describe WGif::Installer do
|
|
81
81
|
context 'running' do
|
82
82
|
|
83
83
|
it 'installs all dependencies' do
|
84
|
-
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
85
|
-
and_return(true)
|
86
|
-
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null').twice
|
87
|
-
and_return(true)
|
88
|
-
expect(Kernel).to receive(:system).with('which convert > /dev/null').twice
|
89
|
-
and_return(false)
|
84
|
+
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
85
|
+
.and_return(true)
|
86
|
+
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null').twice
|
87
|
+
.and_return(true)
|
88
|
+
expect(Kernel).to receive(:system).with('which convert > /dev/null').twice
|
89
|
+
.and_return(false)
|
90
90
|
expect(Kernel).to receive(:system).with('brew install imagemagick')
|
91
|
-
expect{ installer.run }.to raise_error(SystemExit)
|
91
|
+
expect { installer.run }.to raise_error(SystemExit)
|
92
92
|
end
|
93
93
|
|
94
94
|
it 'prints a helpful error if homebrew is not found' do
|
95
|
-
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
96
|
-
and_return(true)
|
97
|
-
expect(Kernel).to receive(:system).with('which convert > /dev/null')
|
98
|
-
and_return(false)
|
99
|
-
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
100
|
-
and_return(false)
|
101
|
-
expect{ installer.run }.to raise_error(SystemExit)
|
102
|
-
expect(@mock_stdout.string)
|
95
|
+
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
96
|
+
.and_return(true)
|
97
|
+
expect(Kernel).to receive(:system).with('which convert > /dev/null')
|
98
|
+
.and_return(false)
|
99
|
+
expect(Kernel).to receive(:system).with('brew info > /dev/null')
|
100
|
+
.and_return(false)
|
101
|
+
expect { installer.run }.to raise_error(SystemExit)
|
102
|
+
expect(@mock_stdout.string)
|
103
|
+
.to eq("WGif can't find Homebrew. Visit http://brew.sh/ to get it.\n")
|
103
104
|
end
|
104
|
-
end
|
105
105
|
|
106
|
+
it 'prints a helpful message if all dependencies are installed' do
|
107
|
+
expect(Kernel).to receive(:system).with('which ffmpeg > /dev/null')
|
108
|
+
.and_return(true)
|
109
|
+
expect(Kernel).to receive(:system).with('which convert > /dev/null')
|
110
|
+
.and_return(true)
|
111
|
+
expect { installer.run }.to raise_error(SystemExit)
|
112
|
+
expect(@mock_stdout.string)
|
113
|
+
.to eq("All dependencies are installed. Go make a gif.\n")
|
114
|
+
end
|
115
|
+
end
|
106
116
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'typhoeus'
|
4
|
+
require 'wgif/uploader'
|
5
|
+
|
6
|
+
describe WGif::Uploader do
|
7
|
+
let(:api_key) { 'api-key' }
|
8
|
+
let(:uploader) { WGif::Uploader.new(api_key) }
|
9
|
+
let(:success) do
|
10
|
+
Typhoeus::Response.new(
|
11
|
+
response_code: 200,
|
12
|
+
return_code: :ok,
|
13
|
+
body: { data: { link: 'foo' } }.to_json
|
14
|
+
)
|
15
|
+
end
|
16
|
+
let(:failure) do
|
17
|
+
Typhoeus::Response.new(
|
18
|
+
response_code: 400,
|
19
|
+
return_code: :error,
|
20
|
+
body: { data: { error: 'You broke everything!' } }.to_json
|
21
|
+
)
|
22
|
+
end
|
23
|
+
let(:tempfile) { Tempfile.new('whatever') }
|
24
|
+
let(:request_params) do
|
25
|
+
{ body: { image: tempfile },
|
26
|
+
headers: { Authorization: "Client-ID #{api_key}" } }
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'sends an authorized POST request to Imgur with image file data' do
|
30
|
+
File.stub(:open).and_yield(tempfile)
|
31
|
+
expect(Typhoeus).to receive(:post)
|
32
|
+
.with('https://api.imgur.com/3/image', request_params).and_return(success)
|
33
|
+
uploader.upload(tempfile.path)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'raises an exception if request is not successful' do
|
37
|
+
Typhoeus.stub(/http/).and_return(failure)
|
38
|
+
expect { uploader.upload(tempfile.path) }
|
39
|
+
.to raise_error(WGif::ImgurException, 'You broke everything!')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'returns the url when successful' do
|
43
|
+
File.stub(:open).and_yield(tempfile)
|
44
|
+
expect(Typhoeus).to receive(:post)
|
45
|
+
.with('https://api.imgur.com/3/image', request_params).and_return(success)
|
46
|
+
expect(uploader.upload(tempfile.path)).to eq('foo')
|
47
|
+
end
|
48
|
+
end
|
File without changes
|
@@ -10,36 +10,37 @@ describe WGif::Video do
|
|
10
10
|
|
11
11
|
it 'has a name and filepath' do
|
12
12
|
clip.stub(:path).and_return('/tmp/wgif/bjork.mp4')
|
13
|
-
video = described_class.new
|
14
|
-
video.name.should eq(
|
15
|
-
video.clip.path.should eq(
|
13
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
14
|
+
video.name.should eq('bjork')
|
15
|
+
video.clip.path.should eq('/tmp/wgif/bjork.mp4')
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'sets up a logger' do
|
19
|
-
video = described_class.new
|
20
|
-
video.logger.instance_variable_get(:@logdev).filename
|
19
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
20
|
+
video.logger.instance_variable_get(:@logdev).filename
|
21
|
+
.should eq('/tmp/wgif/bjork.log')
|
21
22
|
end
|
22
23
|
|
23
24
|
it 'redirects FFMPEG log output to a file' do
|
24
25
|
expect(FFMPEG).to receive(:logger=).with(an_instance_of(Logger))
|
25
|
-
|
26
|
+
described_class.new 'penguin', 'spec/fixtures/penguin.mp4'
|
26
27
|
end
|
27
28
|
|
28
29
|
it 'is trimmable' do
|
29
30
|
clip.stub(:duration).and_return(5.0)
|
30
31
|
expect(clip).to receive(:transcode)
|
31
|
-
video = described_class.new
|
32
|
-
video = video.trim(
|
32
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
33
|
+
video = video.trim('00:00:00', 5.0)
|
33
34
|
video.clip.duration.should eq(5.0)
|
34
35
|
end
|
35
36
|
|
36
37
|
it 'returns its frames' do
|
37
38
|
expect(clip).to receive(:transcode)
|
38
39
|
FileUtils.stub(:rm)
|
39
|
-
fake_frames = [
|
40
|
-
expect(Dir).to receive(:glob).with('/tmp/wgif/frames/*.png').twice
|
41
|
-
and_return(fake_frames)
|
42
|
-
video = described_class.new
|
40
|
+
fake_frames = ['one', 'two', 'three']
|
41
|
+
expect(Dir).to receive(:glob).with('/tmp/wgif/frames/*.png').twice
|
42
|
+
.and_return(fake_frames)
|
43
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
43
44
|
frames = video.to_frames
|
44
45
|
frames.count.should eq(3)
|
45
46
|
end
|
@@ -51,26 +52,30 @@ describe WGif::Video do
|
|
51
52
|
FileUtils.stub(:rm)
|
52
53
|
expect(clip).to receive(:duration).and_return 2
|
53
54
|
expect(Dir).to receive(:glob).with('/tmp/wgif/frames/*.png').twice
|
54
|
-
video = described_class.new
|
55
|
-
|
55
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
56
|
+
video.to_frames(frames: 10)
|
56
57
|
end
|
57
58
|
|
58
59
|
it 'catches transcode errors and raises an exception' do
|
59
60
|
expect(clip).to receive(:transcode).and_raise(FFMPEG::Error)
|
60
|
-
video = described_class.new
|
61
|
-
expect{ video.trim(
|
61
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
62
|
+
expect { video.trim('00:00:00', 5.0) }
|
63
|
+
.to raise_error(WGif::ClipEncodingException)
|
62
64
|
end
|
63
65
|
|
64
66
|
it 'silences transcode errors from ripping frames' do
|
65
|
-
expect(clip).to receive(:transcode)
|
66
|
-
|
67
|
-
|
67
|
+
expect(clip).to receive(:transcode)
|
68
|
+
.and_raise(FFMPEG::Error.new 'no output file created')
|
69
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
70
|
+
expect { video.trim('00:00:00', 5.0) }
|
71
|
+
.not_to raise_error
|
68
72
|
end
|
69
73
|
|
70
74
|
it 'silences transcode errors from ripping frames when input is invalid' do
|
71
|
-
message =
|
75
|
+
message = 'no output file created. Invalid data found when processing input'
|
72
76
|
expect(clip).to receive(:transcode).and_raise(FFMPEG::Error.new message)
|
73
|
-
video = described_class.new
|
74
|
-
expect{ video.trim(
|
77
|
+
video = described_class.new 'bjork', '/tmp/wgif/bjork.mp4'
|
78
|
+
expect { video.trim('00:00:00', 5.0) }
|
79
|
+
.to raise_error(WGif::ClipEncodingException)
|
75
80
|
end
|
76
81
|
end
|
data/wgif.gemspec
CHANGED
@@ -4,30 +4,30 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'wgif/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'wgif'
|
8
8
|
spec.version = WGif::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.description = %q
|
12
|
-
spec.summary = %q
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['Connor Mendenhall']
|
10
|
+
spec.email = ['ecmendenhall@gmail.com']
|
11
|
+
spec.description = %q(A command-line tool for creating animated GIFs.)
|
12
|
+
spec.summary = %q(A command-line tool for creating animated GIFs from YouTube videos. Uses FFmpeg and ImageMagick.)
|
13
|
+
spec.homepage = 'https://github.com/ecmendenhall/wgif'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
|
-
spec.files = `git ls-files`.split($/)
|
17
|
-
spec.executables = [
|
18
|
-
spec.test_files = spec.files.grep(
|
19
|
-
spec.require_paths = [
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = ['wgif']
|
18
|
+
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
+
spec.add_dependency 'rmagick'
|
22
|
+
spec.add_dependency 'ruby-progressbar'
|
23
|
+
spec.add_dependency 'streamio-ffmpeg'
|
24
|
+
spec.add_dependency 'typhoeus', '~> 0.6'
|
25
|
+
spec.add_dependency 'viddl-rb'
|
21
26
|
|
22
|
-
spec.
|
23
|
-
spec.
|
24
|
-
spec.
|
25
|
-
spec.
|
26
|
-
spec.
|
27
|
-
|
28
|
-
spec.add_development_dependency "bundler", "~> 1.3"
|
29
|
-
spec.add_development_dependency "pry"
|
30
|
-
spec.add_development_dependency "rake"
|
31
|
-
spec.add_development_dependency "rspec", "~> 2.14"
|
32
|
-
spec.add_development_dependency "simplecov"
|
27
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
28
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
29
|
+
spec.add_development_dependency 'pry'
|
30
|
+
spec.add_development_dependency 'rake'
|
31
|
+
spec.add_development_dependency 'rspec', '~> 2.14'
|
32
|
+
spec.add_development_dependency 'simplecov'
|
33
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wgif
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Connor Mendenhall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rmagick
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.3'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: codeclimate-test-reporter
|
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'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: pry
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -168,6 +182,7 @@ files:
|
|
168
182
|
- Rakefile
|
169
183
|
- bin/wgif
|
170
184
|
- lib/wgif.rb
|
185
|
+
- lib/wgif/argument_parser.rb
|
171
186
|
- lib/wgif/cli.rb
|
172
187
|
- lib/wgif/download_bar.rb
|
173
188
|
- lib/wgif/downloader.rb
|
@@ -178,15 +193,17 @@ files:
|
|
178
193
|
- lib/wgif/version.rb
|
179
194
|
- lib/wgif/video.rb
|
180
195
|
- lib/wgif/video_cache.rb
|
196
|
+
- spec/integration/empty_image_list_spec.rb
|
181
197
|
- spec/spec_helper.rb
|
182
|
-
- spec/wgif/
|
183
|
-
- spec/wgif/
|
184
|
-
- spec/wgif/
|
185
|
-
- spec/wgif/
|
186
|
-
- spec/wgif/
|
187
|
-
- spec/wgif/
|
188
|
-
- spec/wgif/
|
189
|
-
- spec/wgif/
|
198
|
+
- spec/unit/wgif/argument_parser_spec.rb
|
199
|
+
- spec/unit/wgif/cli_spec.rb
|
200
|
+
- spec/unit/wgif/download_bar_spec.rb
|
201
|
+
- spec/unit/wgif/downloader_spec.rb
|
202
|
+
- spec/unit/wgif/gif_maker_spec.rb
|
203
|
+
- spec/unit/wgif/installer_spec.rb
|
204
|
+
- spec/unit/wgif/uploader_spec.rb
|
205
|
+
- spec/unit/wgif/video_cache_spec.rb
|
206
|
+
- spec/unit/wgif/video_spec.rb
|
190
207
|
- wgif.gemspec
|
191
208
|
homepage: https://github.com/ecmendenhall/wgif
|
192
209
|
licenses:
|
@@ -214,12 +231,14 @@ specification_version: 4
|
|
214
231
|
summary: A command-line tool for creating animated GIFs from YouTube videos. Uses
|
215
232
|
FFmpeg and ImageMagick.
|
216
233
|
test_files:
|
234
|
+
- spec/integration/empty_image_list_spec.rb
|
217
235
|
- spec/spec_helper.rb
|
218
|
-
- spec/wgif/
|
219
|
-
- spec/wgif/
|
220
|
-
- spec/wgif/
|
221
|
-
- spec/wgif/
|
222
|
-
- spec/wgif/
|
223
|
-
- spec/wgif/
|
224
|
-
- spec/wgif/
|
225
|
-
- spec/wgif/
|
236
|
+
- spec/unit/wgif/argument_parser_spec.rb
|
237
|
+
- spec/unit/wgif/cli_spec.rb
|
238
|
+
- spec/unit/wgif/download_bar_spec.rb
|
239
|
+
- spec/unit/wgif/downloader_spec.rb
|
240
|
+
- spec/unit/wgif/gif_maker_spec.rb
|
241
|
+
- spec/unit/wgif/installer_spec.rb
|
242
|
+
- spec/unit/wgif/uploader_spec.rb
|
243
|
+
- spec/unit/wgif/video_cache_spec.rb
|
244
|
+
- spec/unit/wgif/video_spec.rb
|