middleman-webp 0.4.1 → 0.4.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 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