middleman-webp 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1373c13db7e3f50fe7748718f23f92cdba4da011
4
- data.tar.gz: a587c6124eeeaa09bc1dfa4ed1ef82fa9e248181
3
+ metadata.gz: ec8dcd14e74ea71c1075c9117a650658f5e54545
4
+ data.tar.gz: 10e6ba4aa291d859481205b777a4023e1874f841
5
5
  SHA512:
6
- metadata.gz: d0abfe763bb864ddadded7ac209b060ecee7449bdbc8d9f144147756e930e798898ef61e46ad124ccd387de24f39cc9a3b33d3c352a14fbaa4dbeabb151c272a
7
- data.tar.gz: 94693ab1db6590a444ddf45b58600be59fe5aaea5d3fccf22b0ae3f3f6f43f7ad4942b9b641f8644e83e613205456961efd681e4aefef48d9c9c6cd7fffdcfcc
6
+ metadata.gz: dd04ccde3cc96ad40b07e4116eb28c2a92c17813bbefee655cd599f9855066bbed173900a51859ebc3ff8afd6808d7a9a6f0ec66636bd559e092ddde459a88a8
7
+ data.tar.gz: 99a36183da396473c3c049b69a828adea67b59ceecf94329d3a56dda9b492f0b093dbec37ef306fd605e04fb48559583fda3cec3c5e169498775459492d48548
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ Style/FileName:
2
+ Enabled: false
@@ -2,14 +2,16 @@ require 'middleman-webp/options'
2
2
 
3
3
  module Middleman
4
4
  module WebP
5
+ ##
6
+ # Handles finding image assets and running them through the conversion using
7
+ # external cwebp and gif2webp commandline tools
5
8
  class Converter
6
9
  SUFFIX_RE = /(jpe?g|png|tiff?|gif)$/i
7
10
 
8
- def initialize(app, options = {}, builder, logger)
11
+ def initialize(app, builder, options = {})
9
12
  @app = app
10
13
  @options = Middleman::WebP::Options.new(options)
11
14
  @builder = builder
12
- @log = logger
13
15
  end
14
16
 
15
17
  def convert
@@ -17,27 +19,24 @@ module Middleman
17
19
  @converted_size = 0
18
20
 
19
21
  convert_images(image_files) do |src, dst|
20
- if !!@options.allow_skip && dst.size >= src.size
21
- next reject_file(dst)
22
- end
22
+ next reject_file(dst) if @options.allow_skip && dst.size >= src.size
23
23
 
24
24
  @original_size += src.size
25
25
  @converted_size += dst.size
26
- @log.info "#{dst.path} "\
26
+ @builder.trigger :created, "#{dst.path} "\
27
27
  "(#{change_percentage(src.size, dst.size)} smaller)"
28
28
  end
29
29
  print_summary
30
30
  end
31
31
 
32
- def convert_images(paths, &after_conversion)
32
+ def convert_images(paths, &_after_conversion)
33
33
  paths.each do |p|
34
34
  begin
35
35
  dst = destination_path(p)
36
36
  exec_convert_tool(p, dst)
37
37
  yield File.new(p), File.new(dst.to_s)
38
38
  rescue StandardError => e
39
- @log.error "Converting #{p} failed"
40
- @log.debug e.to_s
39
+ @builder.trigger :error, "Converting #{p} failed", e.backtrace
41
40
  end
42
41
  end
43
42
  end
@@ -55,15 +54,15 @@ module Middleman
55
54
  end
56
55
 
57
56
  def reject_file(file)
58
- @log.warn "#{file.path} skipped"
57
+ @builder.trigger :deleted, "#{file.path} skipped"
59
58
  File.unlink(file)
60
59
  end
61
60
 
62
61
  def print_summary
63
62
  savings = @original_size - @converted_size
64
- @log.info 'Total conversion savings: '\
65
- "#{number_to_human_size(savings)} "\
66
- "(#{change_percentage(@original_size, @converted_size)})", :blue
63
+ @builder.trigger :webp, '', 'Total conversion savings: '\
64
+ "#{number_to_human_size(savings)} "\
65
+ "(#{change_percentage(@original_size, @converted_size)})"
67
66
  end
68
67
 
69
68
  # Calculate change percentage of converted file size
@@ -84,22 +83,16 @@ module Middleman
84
83
  end
85
84
 
86
85
  def destination_path(src_path)
87
- if @options.append_extension
88
- dst_name = "#{src_path.basename.to_s}.webp"
89
- else
90
- dst_name = src_path.basename.to_s.gsub(SUFFIX_RE, 'webp')
91
- end
86
+ dst_name = if @options.append_extension
87
+ "#{src_path.basename}.webp"
88
+ else
89
+ src_path.basename.to_s.gsub(SUFFIX_RE, 'webp')
90
+ end
92
91
  src_path.parent.join(dst_name)
93
92
  end
94
93
 
95
94
  def image_files
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
-
102
- all = ::Middleman::Util.all_files_under(app_dir)
95
+ all = ::Middleman::Util.all_files_under(site_dir)
103
96
  images = all.select { |p| p.to_s =~ SUFFIX_RE }
104
97
 
105
98
  # Reject files matching possible ignore patterns
@@ -127,6 +120,16 @@ module Middleman
127
120
  format("%g #{units[exponent]}",
128
121
  format('%.2f', n.to_f / 1024**exponent))
129
122
  end
123
+
124
+ private
125
+
126
+ def site_dir
127
+ if @options.run_before_build
128
+ Pathname(File.join(@app.root, @app.config[:source]))
129
+ else
130
+ Pathname(@app.config[:build_dir])
131
+ end
132
+ end
130
133
  end
131
134
  end
132
135
  end
@@ -1,20 +1,27 @@
1
1
  require 'middleman-core'
2
- require 'middleman-webp/logger'
3
2
  require 'middleman-webp/converter'
4
3
 
5
4
  require 'shell'
6
5
 
7
6
  module Middleman
7
+ ##
8
+ # Middleman extension for converting image assets to WebP alternatives
9
+ #
10
+ # Conversion is run using after_build or before_build according to the
11
+ # configuration, after_build being the default.
8
12
  class WebPExtension < Extension
9
13
  option(:conversion_options, {},
10
14
  'Custom conversion options for cwebp/gif2webp')
11
15
  option(:append_extension, false,
12
- 'keep the original filename and extension and append .webp (image.png => image.png.webp)')
16
+ 'keep the original filename and extension and append .webp '\
17
+ '(image.png => image.png.webp)')
13
18
  option(:ignore, [], 'Ignores files with matching paths')
14
19
  option(:verbose, false, 'Display all external command which are executed '\
15
20
  'to help debugging.')
16
- option(:allow_skip, true, 'Skip saving .webp files which are larger than their source')
17
- option(:run_before_build, false, 'Run before build and save .webp files in source dir')
21
+ option(:allow_skip, true, 'Skip saving .webp files which are larger than '\
22
+ 'their source')
23
+ option(:run_before_build, false, 'Run before build and save .webp files in'\
24
+ ' source dir')
18
25
 
19
26
  def initialize(app, options_hash = {}, &block)
20
27
  super
@@ -22,45 +29,42 @@ module Middleman
22
29
  end
23
30
 
24
31
  def before_build(builder)
25
- return unless options[:run_before_build]
32
+ return unless options.run_before_build
26
33
 
27
- initialize_logger builder
28
- return unless dependencies_installed?
29
- Middleman::WebP::Converter.new(@app, options, builder, @logger).convert
34
+ return unless dependencies_installed?(builder)
35
+ Middleman::WebP::Converter.new(@app, builder, options).convert
30
36
  end
31
37
 
32
38
  def after_build(builder)
33
- return if options[:run_before_build]
39
+ return if options.run_before_build
34
40
 
35
- initialize_logger builder
36
- return unless dependencies_installed?
37
- Middleman::WebP::Converter.new(@app, options, builder, @logger).convert
41
+ return unless dependencies_installed? builder
42
+ Middleman::WebP::Converter.new(@app, builder, options).convert
38
43
  end
39
44
 
40
45
  # Internal: Check that cwebp and gif2webp commandline tools are available.
41
46
  #
42
47
  # Returns true if all is OK.
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)
48
+ def dependencies_installed?(builder)
49
+ warn_if_gif2webp_missing builder
50
+ cwebp_installed? builder
50
51
  end
51
52
 
52
53
  private
53
54
 
54
- def warn_if_gif2webp_missing
55
+ def warn_if_gif2webp_missing(builder)
55
56
  Shell.new.find_system_command('gif2webp')
56
57
  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
+ builder.trigger :webp, nil, "#{e.message} Please install latest version"\
59
+ ' of webp library and tools to get gif2webp and be able to convert gif'\
60
+ 'files also.'
58
61
  end
59
62
 
60
- def cwebp_installed?
63
+ def cwebp_installed?(builder)
61
64
  true if Shell.new.find_system_command('cwebp')
62
65
  rescue Shell::Error::CommandNotFound => e
63
- @logger.error "ERROR: #{e.message} Please install cwebp and gif2webp commandline tools first."
66
+ builder.trigger :error, "ERROR: #{e.message} Please install cwebp and "\
67
+ 'gif2webp commandline tools first.'
64
68
  false
65
69
  end
66
70
  end
@@ -3,7 +3,8 @@ require 'middleman-webp/pathname_matcher'
3
3
  module Middleman
4
4
  module WebP
5
5
  class Options
6
- attr_reader :ignore, :verbose, :append_extension, :allow_skip, :run_before_build
6
+ attr_reader :ignore, :verbose, :append_extension, :allow_skip,
7
+ :run_before_build
7
8
 
8
9
  def initialize(options = {})
9
10
  @ignore = options[:ignore] || []
@@ -30,7 +31,7 @@ module Middleman
30
31
  # glob pattern matches file path and uses the one with longest
31
32
  # glob, because it's assumed to be the most precise one.
32
33
  def for(file)
33
- matching = @conversion.select { |m, o| m.matches? file }
34
+ matching = @conversion.select { |m, _o| m.matches? file }
34
35
 
35
36
  return '' if matching.empty?
36
37
 
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module Webp
3
- VERSION = '0.4.1'
3
+ VERSION = '0.4.2'.freeze
4
4
  end
5
5
  end
@@ -18,7 +18,7 @@ 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", "~> 4.0.0"
21
+ spec.add_dependency "middleman-core", "~> 4.0"
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.5"
24
24
  spec.add_development_dependency "middleman-cli", "~> 4.0.0"
@@ -4,15 +4,9 @@ require 'middleman-core/cli'
4
4
  require 'thor'
5
5
  require_relative '../../lib/middleman-webp/extension'
6
6
 
7
- class MockBuilder
8
- def thor
9
- return Middleman::Cli::Build.new
10
- end
11
- end
12
-
13
7
  describe Middleman::WebPExtension do
14
8
  before do
15
- @builder = MockBuilder.new
9
+ @builder = stub(thor: Middleman::Cli::Build.new)
16
10
  end
17
11
 
18
12
  after do
@@ -27,30 +21,17 @@ describe Middleman::WebPExtension do
27
21
 
28
22
  describe '#before_build' do
29
23
  it 'does not generate WebP versions by default' do
30
- app_mock = stub({
31
- initialized: '',
32
- instance_available: true,
33
- after_configuration: nil,
34
- before_build: nil,
35
- after_build: nil,
36
- root: '.',
37
- config: {source: 'spec/fixtures/ok-source'}
38
- })
39
-
40
- Middleman::WebP::Logger.any_instance.expects(:info).never
41
- .with do |msg, color|
42
- msg =~ /Total conversion savings/
43
- end
44
-
45
- Middleman::WebP::Logger.any_instance.expects(:info).never
46
- .with do |msg|
47
- msg =~ /cwebp/
48
- end
49
-
50
- Middleman::WebP::Logger.any_instance.expects(:info).never
51
- .with do |msg|
52
- msg =~ /\.webp \([0-9.]+ % smaller\)/
53
- end
24
+ app_mock = stub(initialized: '',
25
+ instance_available: true,
26
+ after_configuration: nil,
27
+ before_build: nil,
28
+ after_build: nil,
29
+ root: '.',
30
+ config: { source: 'spec/fixtures/ok-source' })
31
+
32
+ @builder.expects(:trigger).never.with do |event|
33
+ [:webp, :created, :error, :deleted].include? event
34
+ end
54
35
 
55
36
  @extension = Middleman::WebPExtension.new(app_mock)
56
37
  @extension.before_build(@builder)
@@ -59,26 +40,24 @@ describe Middleman::WebPExtension do
59
40
  end
60
41
 
61
42
  it 'generates WebP versions using external tools when option is set' do
62
- app_mock = stub({
63
- initialized: '',
64
- instance_available: true,
65
- after_configuration: nil,
66
- before_build: nil,
67
- after_build: nil,
68
- verbose: true,
69
- root: '.',
70
- config: {
71
- source: 'spec/fixtures/ok-source',
72
- build_dir: 'spec/fixtures/ok-build'
73
- }
43
+ app_mock = stub(initialized: '',
44
+ instance_available: true,
45
+ after_configuration: nil,
46
+ before_build: nil,
47
+ after_build: nil,
48
+ verbose: true,
49
+ root: '.',
50
+ config: {
51
+ source: 'spec/fixtures/ok-source',
52
+ build_dir: 'spec/fixtures/ok-build'
74
53
  })
75
54
 
76
- Middleman::WebP::Logger.any_instance.expects(:info).once.with do |msg, c|
77
- msg =~ /Total conversion savings/
55
+ @builder.expects(:trigger).twice.with do |event, msg|
56
+ event == :created && msg =~ /\.webp \([0-9.]+ % smaller\)/
78
57
  end
79
58
 
80
- Middleman::WebP::Logger.any_instance.expects(:info).twice.with do |msg|
81
- msg =~ /\.webp \([0-9.]+ % smaller\)/
59
+ @builder.expects(:trigger).once.with do |event, _target, msg|
60
+ event == :webp && msg =~ /Total conversion savings/
82
61
  end
83
62
 
84
63
  @extension = Middleman::WebPExtension.new(app_mock) do |webp|
@@ -92,27 +71,25 @@ describe Middleman::WebPExtension do
92
71
 
93
72
  describe '#after_build' do
94
73
  before do
95
- Middleman::WebP::Logger.any_instance.expects(:info).once.with do |msg|
96
- msg =~ /Total conversion savings/
97
- end
74
+ @builder.expects(:trigger).once.with do |event, _target, msg|
75
+ event == :webp && msg =~ /Total conversion savings/
76
+ end
98
77
  end
99
78
 
100
79
  it 'generates WebP versions using external tools' do
101
- app_mock = stub({
102
- initialized: '',
103
- instance_available: true,
104
- after_configuration: nil,
105
- before_build: nil,
106
- after_build: nil,
107
- root: '.',
108
- config: {
109
- source: 'spec/fixtures/ok-source',
110
- build_dir: 'spec/fixtures/ok-build'
111
- }
80
+ app_mock = stub(initialized: '',
81
+ instance_available: true,
82
+ after_configuration: nil,
83
+ before_build: nil,
84
+ after_build: nil,
85
+ root: '.',
86
+ config: {
87
+ source: 'spec/fixtures/ok-source',
88
+ build_dir: 'spec/fixtures/ok-build'
112
89
  })
113
90
 
114
- Middleman::WebP::Logger.any_instance.expects(:info).twice.with do |msg|
115
- msg =~ /\.webp \([0-9.]+ % smaller\)/
91
+ @builder.expects(:trigger).twice.with do |event, msg|
92
+ event == :created && msg =~ /\.webp \([0-9.]+ % smaller\)/
116
93
  end
117
94
 
118
95
  @extension = Middleman::WebPExtension.new(app_mock)
@@ -122,21 +99,19 @@ describe Middleman::WebPExtension do
122
99
  end
123
100
 
124
101
  it 'shows errors if files couldn\'t be converted' do
125
- app_mock = stub({
126
- initialized: '',
127
- instance_available: true,
128
- after_configuration: nil,
129
- before_build: nil,
130
- after_build: nil,
131
- root: '.',
132
- config: {build_dir: 'spec/fixtures/dummy-build'}
133
- })
134
-
135
- Middleman::WebP::Converter.any_instance.
136
- expects(:exec_convert_tool).times(3)
137
-
138
- Middleman::WebP::Logger.any_instance.expects(:error).times(3).with do |msg|
139
- msg =~ /Converting .*empty\.(jpg|gif|png) failed/
102
+ app_mock = stub(initialized: '',
103
+ instance_available: true,
104
+ after_configuration: nil,
105
+ before_build: nil,
106
+ after_build: nil,
107
+ root: '.',
108
+ config: { build_dir: 'spec/fixtures/dummy-build' })
109
+
110
+ Middleman::WebP::Converter.any_instance
111
+ .expects(:exec_convert_tool).times(3)
112
+
113
+ @builder.expects(:trigger).times(3).with do |event, msg|
114
+ event == :error && msg =~ /Converting .*empty\.(jpg|gif|png) failed/
140
115
  end
141
116
 
142
117
  @extension = Middleman::WebPExtension.new(app_mock)
@@ -144,18 +119,16 @@ describe Middleman::WebPExtension do
144
119
  end
145
120
 
146
121
  it 'rejects file if it is larger than original' do
147
- app_mock = stub({
148
- initialized: '',
149
- instance_available: true,
150
- after_configuration: nil,
151
- before_build: nil,
152
- after_build: nil,
153
- root: '.',
154
- config: {build_dir: 'spec/fixtures/dummy-build'}
155
- })
156
-
157
- Middleman::WebP::Converter.any_instance.
158
- expects(:exec_convert_tool).times(3).with do |src, dst|
122
+ app_mock = stub(initialized: '',
123
+ instance_available: true,
124
+ after_configuration: nil,
125
+ before_build: nil,
126
+ after_build: nil,
127
+ root: '.',
128
+ config: { build_dir: 'spec/fixtures/dummy-build' })
129
+
130
+ Middleman::WebP::Converter.any_instance
131
+ .expects(:exec_convert_tool).times(3).with do |_src, dst|
159
132
  if dst.to_s =~ /spec\/fixtures\/dummy-build\/.*webp$/
160
133
  File.open(dst, 'w') do |f|
161
134
  f << 'Making it larger than empty dummy original'
@@ -166,8 +139,9 @@ describe Middleman::WebPExtension do
166
139
  end
167
140
  end
168
141
 
169
- Middleman::WebP::Logger.any_instance.expects(:info).times(3)
170
- .with { |msg| msg =~ /.*empty.webp skipped/ }.returns(nil)
142
+ @builder.expects(:trigger).times(3).with do |event, msg|
143
+ event == :deleted && msg =~ /.*empty.webp skipped/
144
+ end.returns(nil)
171
145
 
172
146
  @extension = Middleman::WebPExtension.new(app_mock)
173
147
  @extension.after_build(@builder)
@@ -175,5 +149,4 @@ describe Middleman::WebPExtension do
175
149
  Dir.glob('spec/fixtures/dummy-build/**/*.webp').size.must_equal 0
176
150
  end
177
151
  end
178
-
179
152
  end
@@ -5,8 +5,8 @@ require_relative '../../lib/middleman-webp/converter'
5
5
 
6
6
  describe Middleman::WebP::Converter do
7
7
  before do
8
- @app_mock = stub(config: {build_dir: 'spec/fixtures/dummy-build'})
9
- @converter = Middleman::WebP::Converter.new(@app_mock, {}, nil)
8
+ @app_mock = stub(config: { build_dir: 'spec/fixtures/dummy-build' })
9
+ @converter = Middleman::WebP::Converter.new @app_mock, nil
10
10
  end
11
11
 
12
12
  describe '#destination_path' do
@@ -18,7 +18,8 @@ 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, nil)
21
+ @converter = Middleman::WebP::Converter.new @app_mock, nil,
22
+ append_extension: true
22
23
  end
23
24
 
24
25
  it 'returns file name with same basename and webp suffix' do
@@ -72,9 +73,8 @@ describe Middleman::WebP::Converter do
72
73
  end
73
74
 
74
75
  it 'won\'t include ignored files' do
75
- @converter = Middleman::WebP::Converter.new(@app_mock, {
76
- ignore: [/jpg$/, '**/*.gif']
77
- }, nil, nil)
76
+ @converter = Middleman::WebP::Converter.new @app_mock, nil,
77
+ ignore: [/jpg$/, '**/*.gif']
78
78
 
79
79
  files_to_include = [Pathname('spec/fixtures/dummy-build/empty.png')]
80
80
  @converter.image_files.must_equal files_to_include
@@ -84,7 +84,7 @@ describe Middleman::WebP::Converter do
84
84
  options = {
85
85
  ignore: ->(path) { path.end_with? 'jpg' }
86
86
  }
87
- @converter = Middleman::WebP::Converter.new(@app_mock, options, nil, nil)
87
+ @converter = Middleman::WebP::Converter.new @app_mock, nil, options
88
88
 
89
89
  @converter.image_files.size.must_equal 2
90
90
  end
@@ -2,17 +2,14 @@ require 'spec_helper'
2
2
  require_relative '../../lib/middleman-webp/extension'
3
3
 
4
4
  describe Middleman::WebPExtension do
5
-
6
5
  before do
7
- app_mock = stub({
8
- initialized: '',
9
- instance_available: true,
10
- after_configuration: nil,
11
- before_build: nil,
12
- after_build: nil
13
- })
6
+ app_mock = stub(initialized: '',
7
+ instance_available: true,
8
+ after_configuration: nil,
9
+ before_build: nil,
10
+ after_build: nil)
14
11
  @extension = Middleman::WebPExtension.new(app_mock)
15
- @extension.initialize_logger(stub(thor: {say_status: nil}))
12
+ @builder_mock = stub(trigger: nil)
16
13
  end
17
14
 
18
15
  describe '#dependencies_installed?' do
@@ -20,24 +17,27 @@ describe Middleman::WebPExtension do
20
17
  Shell.any_instance.expects(:find_system_command).with('cwebp').returns('/usr/bin/cwebp')
21
18
  Shell.any_instance.expects(:find_system_command).with('gif2webp').returns('/usr/bin/gif2webp')
22
19
 
23
- @extension.dependencies_installed?.must_equal true
20
+ @extension.dependencies_installed?(@builder_mock).must_equal true
24
21
  end
25
22
 
26
23
  it 'returns false and displays error if cwebp is missing' do
27
24
  Shell.any_instance.expects(:find_system_command).with('cwebp').raises(Shell::Error::CommandNotFound)
28
25
  Shell.any_instance.stubs(:find_system_command).with('gif2webp').returns('/usr/bin/gif2webp')
29
26
 
30
- Middleman::WebP::Logger.any_instance.expects(:error).once
31
- @extension.dependencies_installed?.must_equal false
27
+ @builder_mock.expects(:trigger).once.with do |event|
28
+ event == :error
29
+ end
30
+ @extension.dependencies_installed?(@builder_mock).must_equal false
32
31
  end
33
32
 
34
33
  it 'displays error if only gif2webp is missing and returns still true' do
35
34
  Shell.any_instance.expects(:find_system_command).with('gif2webp').raises(Shell::Error::CommandNotFound)
36
35
  Shell.any_instance.stubs(:find_system_command).with('cwebp').returns('/usr/bin/cwebp')
37
36
 
38
- Middleman::WebP::Logger.any_instance.expects(:error).once
39
- @extension.dependencies_installed?.must_equal true
37
+ @builder_mock.expects(:trigger).once.with do |event, _target, msg|
38
+ event == :webp && msg =~ /gif2webp/
39
+ end
40
+ @extension.dependencies_installed?(@builder_mock).must_equal true
40
41
  end
41
42
  end
42
-
43
43
  end
@@ -4,17 +4,17 @@ require_relative '../../lib/middleman-webp/options'
4
4
 
5
5
  describe Middleman::WebP::Options do
6
6
  describe '#allow_skip' do
7
- it "should default to true" do
7
+ it 'should default to true' do
8
8
  options = Middleman::WebP::Options.new
9
9
  options.allow_skip.must_equal(true)
10
10
  end
11
-
12
- it "should allow setting to true" do
11
+
12
+ it 'should allow setting to true' do
13
13
  options = Middleman::WebP::Options.new(allow_skip: false)
14
14
  options.allow_skip.must_equal(false)
15
15
  end
16
16
  end
17
-
17
+
18
18
  describe '#for' do
19
19
  it 'returns cwebp args when given file matches option file pattern glob' do
20
20
  path = Pathname.new('test_image.jpg')
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
  require_relative '../../lib/middleman-webp/pathname_matcher'
3
3
 
4
4
  describe Middleman::WebP::PathnameMatcher do
5
-
6
5
  describe '#matches?' do
7
6
  it 'returns true when given file matches pattern' do
8
7
  patterns = ['**/*.jpg', /jpg$/, ->(path) { path.end_with?('jpg') }]
@@ -54,7 +53,5 @@ describe Middleman::WebP::PathnameMatcher do
54
53
  it 'handles nil path gracefully and returns false' do
55
54
  Middleman::WebP::PathnameMatcher.new('*.jpg').matches? nil
56
55
  end
57
-
58
56
  end
59
-
60
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-webp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juhamatti Niemelä
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-16 00:00:00.000000000 Z
11
+ date: 2016-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.0
19
+ version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 4.0.0
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -88,6 +88,7 @@ extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
+ - ".rubocop.yml"
91
92
  - ".travis.yml"
92
93
  - CHANGELOG.md
93
94
  - Gemfile
@@ -97,7 +98,6 @@ files:
97
98
  - lib/middleman-webp.rb
98
99
  - lib/middleman-webp/converter.rb
99
100
  - lib/middleman-webp/extension.rb
100
- - lib/middleman-webp/logger.rb
101
101
  - lib/middleman-webp/options.rb
102
102
  - lib/middleman-webp/pathname_matcher.rb
103
103
  - lib/middleman-webp/version.rb
@@ -115,7 +115,6 @@ files:
115
115
  - spec/spec_helper.rb
116
116
  - spec/unit/converter_spec.rb
117
117
  - spec/unit/extension_spec.rb
118
- - spec/unit/logger_spec.rb
119
118
  - spec/unit/options_spec.rb
120
119
  - spec/unit/pathname_matcher_spec.rb
121
120
  homepage: http://github.com/iiska/middleman-webp
@@ -138,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
137
  version: '0'
139
138
  requirements: []
140
139
  rubyforge_project:
141
- rubygems_version: 2.4.5.1
140
+ rubygems_version: 2.5.1
142
141
  signing_key:
143
142
  specification_version: 4
144
143
  summary: WebP image conversion for Middleman
@@ -155,6 +154,5 @@ test_files:
155
154
  - spec/spec_helper.rb
156
155
  - spec/unit/converter_spec.rb
157
156
  - spec/unit/extension_spec.rb
158
- - spec/unit/logger_spec.rb
159
157
  - spec/unit/options_spec.rb
160
158
  - spec/unit/pathname_matcher_spec.rb
@@ -1,26 +0,0 @@
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
@@ -1,33 +0,0 @@
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