middleman-webp 0.3.2 → 0.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/.travis.yml +5 -4
- data/CHANGELOG.md +7 -0
- data/README.md +5 -0
- data/lib/middleman-webp/converter.rb +18 -10
- data/lib/middleman-webp/extension.rb +31 -19
- data/lib/middleman-webp/logger.rb +26 -0
- data/lib/middleman-webp/version.rb +1 -1
- data/middleman-webp.gemspec +2 -1
- data/spec/integration/extension_spec.rb +39 -38
- data/spec/unit/converter_spec.rb +8 -11
- data/spec/unit/extension_spec.rb +6 -12
- data/spec/unit/logger_spec.rb +33 -0
- metadata +24 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 676281da9d58ad178d2534079addaf244b654df8
|
4
|
+
data.tar.gz: abe0ee6f6130466c5366acecb82d86c05cf47480
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4526692069e1d3c85c9bd1b76fb061feef560e49084a28e4efd64a6e74469c6c634cee2d476039d3aa3cff15b6cddf6acd3264258d7157e46cf98ab56bb5c7c
|
7
|
+
data.tar.gz: 859eb337409cb087fd9728a7f9898c9912c3928cbae2b561c21276aabfbf26e38b4d2a57c8ac57f68d8dfbd00bde2dbe004a1b6f36e50825a59d64c0bb545b40
|
data/.travis.yml
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
+
sudo: required
|
2
|
+
dist: trusty
|
1
3
|
language: ruby
|
2
4
|
rvm:
|
3
|
-
- 1.9.3
|
4
5
|
- 2.0.0
|
5
|
-
- 2.1.
|
6
|
-
- 2.2.
|
6
|
+
- 2.1.7
|
7
|
+
- 2.2.3
|
7
8
|
script: bundle exec rake test
|
8
9
|
before_install:
|
9
10
|
- sudo apt-get update -qq
|
10
|
-
- sudo apt-get install webp
|
11
|
+
- sudo apt-get install -y webp
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -38,6 +38,11 @@ Add this line to your Middleman site's Gemfile:
|
|
38
38
|
|
39
39
|
gem 'middleman-webp'
|
40
40
|
|
41
|
+
You are not able to use latest gem version if you are using **Middleman 3**. In
|
42
|
+
that case install gem with following Gemfile statement:
|
43
|
+
|
44
|
+
gem 'middleman-webp', '~> 0.3.2'
|
45
|
+
|
41
46
|
And then execute:
|
42
47
|
|
43
48
|
$ bundle
|
@@ -5,15 +5,17 @@ module Middleman
|
|
5
5
|
class Converter
|
6
6
|
SUFFIX_RE = /(jpe?g|png|tiff?|gif)$/i
|
7
7
|
|
8
|
-
def initialize(app, options = {}, builder)
|
8
|
+
def initialize(app, options = {}, builder, logger)
|
9
9
|
@app = app
|
10
10
|
@options = Middleman::WebP::Options.new(options)
|
11
11
|
@builder = builder
|
12
|
+
@log = logger
|
12
13
|
end
|
13
14
|
|
14
15
|
def convert
|
15
16
|
@original_size = 0
|
16
17
|
@converted_size = 0
|
18
|
+
|
17
19
|
convert_images(image_files) do |src, dst|
|
18
20
|
if !!@options.allow_skip && dst.size >= src.size
|
19
21
|
next reject_file(dst)
|
@@ -21,8 +23,8 @@ module Middleman
|
|
21
23
|
|
22
24
|
@original_size += src.size
|
23
25
|
@converted_size += dst.size
|
24
|
-
@
|
25
|
-
|
26
|
+
@log.info "#{dst.path} "\
|
27
|
+
"(#{change_percentage(src.size, dst.size)} smaller)"
|
26
28
|
end
|
27
29
|
print_summary
|
28
30
|
end
|
@@ -32,16 +34,17 @@ module Middleman
|
|
32
34
|
begin
|
33
35
|
dst = destination_path(p)
|
34
36
|
exec_convert_tool(p, dst)
|
35
|
-
yield File.new(p), File.new(dst)
|
36
|
-
rescue
|
37
|
-
@
|
37
|
+
yield File.new(p), File.new(dst.to_s)
|
38
|
+
rescue StandardError => e
|
39
|
+
@log.error "Converting #{p} failed"
|
40
|
+
@log.debug e.to_s
|
38
41
|
end
|
39
42
|
end
|
40
43
|
end
|
41
44
|
|
42
45
|
def exec_convert_tool(src, dst)
|
43
46
|
cmd = "#{tool_for(src)} #{@options.for(src)} -quiet #{src} -o #{dst}"
|
44
|
-
@builder.run
|
47
|
+
@builder.run(cmd, verbose: @options.verbose, capture: true)
|
45
48
|
end
|
46
49
|
|
47
50
|
# Internal: Return proper tool command based on file type
|
@@ -52,13 +55,13 @@ module Middleman
|
|
52
55
|
end
|
53
56
|
|
54
57
|
def reject_file(file)
|
55
|
-
@
|
58
|
+
@log.warn "#{file.path} skipped"
|
56
59
|
File.unlink(file)
|
57
60
|
end
|
58
61
|
|
59
62
|
def print_summary
|
60
63
|
savings = @original_size - @converted_size
|
61
|
-
@
|
64
|
+
@log.info 'Total conversion savings: '\
|
62
65
|
"#{number_to_human_size(savings)} "\
|
63
66
|
"(#{change_percentage(@original_size, @converted_size)})", :blue
|
64
67
|
end
|
@@ -90,7 +93,12 @@ module Middleman
|
|
90
93
|
end
|
91
94
|
|
92
95
|
def image_files
|
93
|
-
|
96
|
+
if @options.run_before_build
|
97
|
+
app_dir = Pathname(File.join(@app.root, @app.config[:source]))
|
98
|
+
else
|
99
|
+
app_dir = Pathname(@app.config[:build_dir])
|
100
|
+
end
|
101
|
+
|
94
102
|
all = ::Middleman::Util.all_files_under(app_dir)
|
95
103
|
images = all.select { |p| p.to_s =~ SUFFIX_RE }
|
96
104
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'middleman-core'
|
2
|
+
require 'middleman-webp/logger'
|
2
3
|
require 'middleman-webp/converter'
|
3
4
|
|
4
5
|
require 'shell'
|
@@ -22,34 +23,45 @@ module Middleman
|
|
22
23
|
|
23
24
|
def before_build(builder)
|
24
25
|
return unless options[:run_before_build]
|
25
|
-
|
26
|
-
|
26
|
+
|
27
|
+
initialize_logger builder
|
28
|
+
return unless dependencies_installed?
|
29
|
+
Middleman::WebP::Converter.new(@app, options, builder, @logger).convert
|
27
30
|
end
|
28
31
|
|
29
32
|
def after_build(builder)
|
30
33
|
return if options[:run_before_build]
|
31
|
-
|
32
|
-
|
34
|
+
|
35
|
+
initialize_logger builder
|
36
|
+
return unless dependencies_installed?
|
37
|
+
Middleman::WebP::Converter.new(@app, options, builder, @logger).convert
|
33
38
|
end
|
34
39
|
|
35
40
|
# Internal: Check that cwebp and gif2webp commandline tools are available.
|
36
41
|
#
|
37
42
|
# Returns true if all is OK.
|
38
|
-
def dependencies_installed?
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
43
|
+
def dependencies_installed?
|
44
|
+
warn_if_gif2webp_missing
|
45
|
+
cwebp_installed?
|
46
|
+
end
|
47
|
+
|
48
|
+
def initialize_logger(builder)
|
49
|
+
@logger = Middleman::WebP::Logger.new(builder, verbose: @options.verbose)
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def warn_if_gif2webp_missing
|
55
|
+
Shell.new.find_system_command('gif2webp')
|
56
|
+
rescue Shell::Error::CommandNotFound => e
|
57
|
+
@logger.error "#{e.message} Please install latest version of webp library and tools to get gif2webp and be able to convert gif files also."
|
58
|
+
end
|
59
|
+
|
60
|
+
def cwebp_installed?
|
61
|
+
true if Shell.new.find_system_command('cwebp')
|
62
|
+
rescue Shell::Error::CommandNotFound => e
|
63
|
+
@logger.error "ERROR: #{e.message} Please install cwebp and gif2webp commandline tools first."
|
64
|
+
false
|
53
65
|
end
|
54
66
|
end
|
55
67
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Middleman
|
2
|
+
module WebP
|
3
|
+
class Logger
|
4
|
+
def initialize(builder, opts = {})
|
5
|
+
@builder = builder
|
6
|
+
@options = opts
|
7
|
+
end
|
8
|
+
|
9
|
+
def info(msg, color = nil)
|
10
|
+
@builder.thor.say_status :webp, msg, color
|
11
|
+
end
|
12
|
+
|
13
|
+
def error(msg)
|
14
|
+
info msg, :red
|
15
|
+
end
|
16
|
+
|
17
|
+
def warn(msg)
|
18
|
+
info msg, :yellow
|
19
|
+
end
|
20
|
+
|
21
|
+
def debug(msg)
|
22
|
+
info msg if @options[:verbose]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/middleman-webp.gemspec
CHANGED
@@ -18,9 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "middleman-core", "
|
21
|
+
spec.add_dependency "middleman-core", "~> 4.0.0"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.5"
|
24
|
+
spec.add_development_dependency "middleman-cli", "~> 4.0.0"
|
24
25
|
spec.add_development_dependency "rake"
|
25
26
|
#spec.add_development_dependency "simplecov"
|
26
27
|
spec.add_development_dependency "mocha"
|
@@ -1,13 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'middleman-core'
|
2
3
|
require 'middleman-core/cli'
|
3
4
|
require_relative '../../lib/middleman-webp/extension'
|
4
5
|
|
5
6
|
describe Middleman::WebPExtension do
|
6
7
|
before do
|
7
8
|
@builder = Middleman::Cli::Build.new
|
8
|
-
|
9
|
-
|
10
|
-
end
|
9
|
+
#@builder.stubs(:thor).with do |action, msg, opts|
|
10
|
+
# action == :webp and msg =~ /Please install latest version of webp/
|
11
|
+
#end
|
11
12
|
end
|
12
13
|
|
13
14
|
after do
|
@@ -21,27 +22,31 @@ describe Middleman::WebPExtension do
|
|
21
22
|
end
|
22
23
|
|
23
24
|
describe '#before_build' do
|
24
|
-
it 'does not generate WebP versions
|
25
|
+
it 'does not generate WebP versions by default' do
|
25
26
|
app_mock = stub({
|
26
27
|
initialized: '',
|
27
28
|
instance_available: true,
|
28
29
|
after_configuration: nil,
|
29
30
|
before_build: nil,
|
30
31
|
after_build: nil,
|
31
|
-
|
32
|
+
root: '.',
|
33
|
+
config: {source: 'spec/fixtures/ok-source'}
|
32
34
|
})
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
-
|
36
|
+
Middleman::WebP::Logger.any_instance.expects(:info).never
|
37
|
+
.with do |msg, color|
|
38
|
+
msg =~ /Total conversion savings/
|
39
|
+
end
|
37
40
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
+
Middleman::WebP::Logger.any_instance.expects(:info).never
|
42
|
+
.with do |msg|
|
43
|
+
msg =~ /cwebp/
|
44
|
+
end
|
41
45
|
|
42
|
-
|
43
|
-
|
44
|
-
|
46
|
+
Middleman::WebP::Logger.any_instance.expects(:info).never
|
47
|
+
.with do |msg|
|
48
|
+
msg =~ /\.webp \([0-9.]+ % smaller\)/
|
49
|
+
end
|
45
50
|
|
46
51
|
@extension = Middleman::WebPExtension.new(app_mock)
|
47
52
|
@extension.before_build(@builder)
|
@@ -56,19 +61,17 @@ describe Middleman::WebPExtension do
|
|
56
61
|
after_configuration: nil,
|
57
62
|
before_build: nil,
|
58
63
|
after_build: nil,
|
59
|
-
|
64
|
+
verbose: true,
|
65
|
+
root: '.',
|
66
|
+
config: {source: 'spec/fixtures/ok-source'}
|
60
67
|
})
|
61
68
|
|
62
|
-
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
@builder.expects(:say_status).twice.with do |action, msg, opts|
|
67
|
-
action == :run and msg =~ /cwebp/
|
69
|
+
Middleman::WebP::Logger.any_instance.expects(:info).once.with do |msg, c|
|
70
|
+
msg =~ /Total conversion savings/
|
68
71
|
end
|
69
72
|
|
70
|
-
|
71
|
-
|
73
|
+
Middleman::WebP::Logger.any_instance.expects(:info).twice.with do |msg|
|
74
|
+
msg =~ /\.webp \([0-9.]+ % smaller\)/
|
72
75
|
end
|
73
76
|
|
74
77
|
@extension = Middleman::WebPExtension.new(app_mock) do |webp|
|
@@ -82,8 +85,8 @@ describe Middleman::WebPExtension do
|
|
82
85
|
|
83
86
|
describe '#after_build' do
|
84
87
|
before do
|
85
|
-
|
86
|
-
|
88
|
+
Middleman::WebP::Logger.any_instance.expects(:info).once.with do |msg|
|
89
|
+
msg =~ /Total conversion savings/
|
87
90
|
end
|
88
91
|
end
|
89
92
|
|
@@ -94,15 +97,12 @@ describe Middleman::WebPExtension do
|
|
94
97
|
after_configuration: nil,
|
95
98
|
before_build: nil,
|
96
99
|
after_build: nil,
|
97
|
-
|
100
|
+
root: '.',
|
101
|
+
config: {build_dir: 'spec/fixtures/ok-build'}
|
98
102
|
})
|
99
103
|
|
100
|
-
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
|
-
@builder.expects(:say_status).twice.with do |action, msg, opts|
|
105
|
-
action == :webp and msg =~ /\.webp \([0-9.]+ % smaller\)/
|
104
|
+
Middleman::WebP::Logger.any_instance.expects(:info).twice.with do |msg|
|
105
|
+
msg =~ /\.webp \([0-9.]+ % smaller\)/
|
106
106
|
end
|
107
107
|
|
108
108
|
@extension = Middleman::WebPExtension.new(app_mock)
|
@@ -118,13 +118,14 @@ describe Middleman::WebPExtension do
|
|
118
118
|
after_configuration: nil,
|
119
119
|
before_build: nil,
|
120
120
|
after_build: nil,
|
121
|
-
|
121
|
+
root: '.',
|
122
|
+
config: {build_dir: 'spec/fixtures/dummy-build'}
|
122
123
|
})
|
123
124
|
|
124
125
|
Middleman::WebP::Converter.any_instance.
|
125
126
|
expects(:exec_convert_tool).times(3)
|
126
127
|
|
127
|
-
|
128
|
+
Middleman::WebP::Logger.any_instance.expects(:error).times(3).with do |msg|
|
128
129
|
msg =~ /Converting .*empty\.(jpg|gif|png) failed/
|
129
130
|
end
|
130
131
|
|
@@ -139,7 +140,8 @@ describe Middleman::WebPExtension do
|
|
139
140
|
after_configuration: nil,
|
140
141
|
before_build: nil,
|
141
142
|
after_build: nil,
|
142
|
-
|
143
|
+
root: '.',
|
144
|
+
config: {build_dir: 'spec/fixtures/dummy-build'}
|
143
145
|
})
|
144
146
|
|
145
147
|
Middleman::WebP::Converter.any_instance.
|
@@ -154,9 +156,8 @@ describe Middleman::WebPExtension do
|
|
154
156
|
end
|
155
157
|
end
|
156
158
|
|
157
|
-
|
158
|
-
|
159
|
-
end
|
159
|
+
Middleman::WebP::Logger.any_instance.expects(:info).times(3)
|
160
|
+
.with { |msg| msg =~ /.*empty.webp skipped/ }.returns(nil)
|
160
161
|
|
161
162
|
@extension = Middleman::WebPExtension.new(app_mock)
|
162
163
|
@extension.after_build(@builder)
|
data/spec/unit/converter_spec.rb
CHANGED
@@ -5,7 +5,7 @@ require_relative '../../lib/middleman-webp/converter'
|
|
5
5
|
|
6
6
|
describe Middleman::WebP::Converter do
|
7
7
|
before do
|
8
|
-
@app_mock = stub(
|
8
|
+
@app_mock = stub(config: {build_dir: 'spec/fixtures/dummy-build'})
|
9
9
|
@converter = Middleman::WebP::Converter.new(@app_mock, {}, nil)
|
10
10
|
end
|
11
11
|
|
@@ -18,7 +18,7 @@ describe Middleman::WebP::Converter do
|
|
18
18
|
|
19
19
|
describe '#destination_path with append_extension = true' do
|
20
20
|
before do
|
21
|
-
@converter = Middleman::WebP::Converter.new(@app_mock, {append_extension: true}, nil)
|
21
|
+
@converter = Middleman::WebP::Converter.new(@app_mock, {append_extension: true}, nil, nil)
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'returns file name with same basename and webp suffix' do
|
@@ -60,12 +60,9 @@ describe Middleman::WebP::Converter do
|
|
60
60
|
end
|
61
61
|
|
62
62
|
it 'uses cwebp for jpeg, png and tiff files' do
|
63
|
-
|
64
|
-
@converter.tool_for(path).must_equal 'cwebp'
|
65
|
-
|
66
|
-
@converter.tool_for(path).must_equal 'cwebp'
|
67
|
-
path = Pathname.new('/some/path/image.tiff')
|
68
|
-
@converter.tool_for(path).must_equal 'cwebp'
|
63
|
+
@converter.tool_for(Pathname('/some/path/image.jpg')).must_equal 'cwebp'
|
64
|
+
@converter.tool_for(Pathname('/some/path/image.png')).must_equal 'cwebp'
|
65
|
+
@converter.tool_for(Pathname('/some/path/image.tiff')).must_equal 'cwebp'
|
69
66
|
end
|
70
67
|
end
|
71
68
|
|
@@ -77,9 +74,9 @@ describe Middleman::WebP::Converter do
|
|
77
74
|
it 'won\'t include ignored files' do
|
78
75
|
@converter = Middleman::WebP::Converter.new(@app_mock, {
|
79
76
|
ignore: [/jpg$/, '**/*.gif']
|
80
|
-
}, nil)
|
77
|
+
}, nil, nil)
|
81
78
|
|
82
|
-
files_to_include = [Pathname
|
79
|
+
files_to_include = [Pathname('spec/fixtures/dummy-build/empty.png')]
|
83
80
|
@converter.image_files.must_equal files_to_include
|
84
81
|
end
|
85
82
|
|
@@ -87,7 +84,7 @@ describe Middleman::WebP::Converter do
|
|
87
84
|
options = {
|
88
85
|
ignore: ->(path) { path.end_with? 'jpg' }
|
89
86
|
}
|
90
|
-
@converter = Middleman::WebP::Converter.new(@app_mock, options, nil)
|
87
|
+
@converter = Middleman::WebP::Converter.new(@app_mock, options, nil, nil)
|
91
88
|
|
92
89
|
@converter.image_files.size.must_equal 2
|
93
90
|
end
|
data/spec/unit/extension_spec.rb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
#require 'pathname'
|
3
|
-
#require 'middleman-core'
|
4
2
|
require_relative '../../lib/middleman-webp/extension'
|
5
3
|
|
6
4
|
describe Middleman::WebPExtension do
|
7
5
|
|
8
6
|
before do
|
9
|
-
#Middleman::Extension.any_instance.expects(:initialize).returns(true)
|
10
7
|
app_mock = stub({
|
11
8
|
initialized: '',
|
12
9
|
instance_available: true,
|
@@ -15,6 +12,7 @@ describe Middleman::WebPExtension do
|
|
15
12
|
after_build: nil
|
16
13
|
})
|
17
14
|
@extension = Middleman::WebPExtension.new(app_mock)
|
15
|
+
@extension.initialize_logger(stub(thor: {say_status: nil}))
|
18
16
|
end
|
19
17
|
|
20
18
|
describe '#dependencies_installed?' do
|
@@ -22,27 +20,23 @@ describe Middleman::WebPExtension do
|
|
22
20
|
Shell.any_instance.expects(:find_system_command).with('cwebp').returns('/usr/bin/cwebp')
|
23
21
|
Shell.any_instance.expects(:find_system_command).with('gif2webp').returns('/usr/bin/gif2webp')
|
24
22
|
|
25
|
-
@extension.dependencies_installed
|
23
|
+
@extension.dependencies_installed?.must_equal true
|
26
24
|
end
|
27
25
|
|
28
26
|
it 'returns false and displays error if cwebp is missing' do
|
29
27
|
Shell.any_instance.expects(:find_system_command).with('cwebp').raises(Shell::Error::CommandNotFound)
|
30
28
|
Shell.any_instance.stubs(:find_system_command).with('gif2webp').returns('/usr/bin/gif2webp')
|
31
29
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
@extension.dependencies_installed?(builder_mock).must_equal false
|
30
|
+
Middleman::WebP::Logger.any_instance.expects(:error).once
|
31
|
+
@extension.dependencies_installed?.must_equal false
|
36
32
|
end
|
37
33
|
|
38
34
|
it 'displays error if only gif2webp is missing and returns still true' do
|
39
35
|
Shell.any_instance.expects(:find_system_command).with('gif2webp').raises(Shell::Error::CommandNotFound)
|
40
36
|
Shell.any_instance.stubs(:find_system_command).with('cwebp').returns('/usr/bin/cwebp')
|
41
37
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
@extension.dependencies_installed?(builder_mock).must_equal true
|
38
|
+
Middleman::WebP::Logger.any_instance.expects(:error).once
|
39
|
+
@extension.dependencies_installed?.must_equal true
|
46
40
|
end
|
47
41
|
end
|
48
42
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'pathname'
|
3
|
+
require_relative '../../lib/middleman-webp/logger'
|
4
|
+
|
5
|
+
describe Middleman::WebP::Logger do
|
6
|
+
before do
|
7
|
+
@thor_mock = stub({say_status: nil})
|
8
|
+
@logger = Middleman::WebP::Logger.new(stub({thor: @thor_mock}))
|
9
|
+
end
|
10
|
+
|
11
|
+
it "logs info message through Thor with given color" do
|
12
|
+
@thor_mock.expects(:say_status).once.with do |action, msg, color|
|
13
|
+
msg == 'foobar' && color == :blue
|
14
|
+
end
|
15
|
+
@logger.info 'foobar', :blue
|
16
|
+
end
|
17
|
+
|
18
|
+
[[:error, :red], [:warn, :yellow]].each do |(method, color)|
|
19
|
+
it "##{method} logs message with color #{color}" do
|
20
|
+
@thor_mock.expects(:say_status).once.with do |action, msg, col|
|
21
|
+
msg == "#{method} message" && col == color
|
22
|
+
end
|
23
|
+
@logger.send method, "#{method} message"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it "logs error with red" do
|
28
|
+
@thor_mock.expects(:say_status).once.with do |action, msg, color|
|
29
|
+
msg == 'foobar' && color == :red
|
30
|
+
end
|
31
|
+
@logger.error 'foobar'
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-webp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juhamatti Niemelä
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 3.3.0
|
20
|
-
- - "<"
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
19
|
+
version: 4.0.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 3.3.0
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: 4.0.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: bundler
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,6 +38,20 @@ dependencies:
|
|
44
38
|
- - "~>"
|
45
39
|
- !ruby/object:Gem::Version
|
46
40
|
version: '1.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: middleman-cli
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.0.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.0.0
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rake
|
49
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,6 +97,7 @@ files:
|
|
89
97
|
- lib/middleman-webp.rb
|
90
98
|
- lib/middleman-webp/converter.rb
|
91
99
|
- lib/middleman-webp/extension.rb
|
100
|
+
- lib/middleman-webp/logger.rb
|
92
101
|
- lib/middleman-webp/options.rb
|
93
102
|
- lib/middleman-webp/pathname_matcher.rb
|
94
103
|
- lib/middleman-webp/version.rb
|
@@ -106,6 +115,7 @@ files:
|
|
106
115
|
- spec/spec_helper.rb
|
107
116
|
- spec/unit/converter_spec.rb
|
108
117
|
- spec/unit/extension_spec.rb
|
118
|
+
- spec/unit/logger_spec.rb
|
109
119
|
- spec/unit/options_spec.rb
|
110
120
|
- spec/unit/pathname_matcher_spec.rb
|
111
121
|
homepage: http://github.com/iiska/middleman-webp
|
@@ -128,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
138
|
version: '0'
|
129
139
|
requirements: []
|
130
140
|
rubyforge_project:
|
131
|
-
rubygems_version: 2.4.5
|
141
|
+
rubygems_version: 2.4.5.1
|
132
142
|
signing_key:
|
133
143
|
specification_version: 4
|
134
144
|
summary: WebP image conversion for Middleman
|
@@ -145,5 +155,6 @@ test_files:
|
|
145
155
|
- spec/spec_helper.rb
|
146
156
|
- spec/unit/converter_spec.rb
|
147
157
|
- spec/unit/extension_spec.rb
|
158
|
+
- spec/unit/logger_spec.rb
|
148
159
|
- spec/unit/options_spec.rb
|
149
160
|
- spec/unit/pathname_matcher_spec.rb
|