From 1a9d3f6e68ba3a5e342af9f96c270a9530d29ce4 Mon Sep 17 00:00:00 2001 From: Jeremy Green Date: Wed, 9 Sep 2020 19:24:53 -0500 Subject: [PATCH 1/6] Pinning and upgrading versions to get install working and tests running/passing --- middleman-imageoptim.gemspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/middleman-imageoptim.gemspec b/middleman-imageoptim.gemspec index f261e14..2edcfad 100644 --- a/middleman-imageoptim.gemspec +++ b/middleman-imageoptim.gemspec @@ -16,9 +16,9 @@ Gem::Specification.new do |gem| gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) } gem.require_paths = ['lib'] - gem.add_dependency 'middleman-core', ['>= 3.1'] - gem.add_dependency 'middleman-cli' - gem.add_dependency 'image_optim', '~> 0.25.0' + gem.add_dependency 'middleman-core', '~> 4.2.0' + gem.add_dependency 'middleman-cli', '~> 4.2.0' + gem.add_dependency 'image_optim', '~> 0.26.0' gem.add_dependency 'image_optim_pack', '~> 0.2.1' gem.add_development_dependency 'appraisal' From 676f64a2b57e7ed33f97ef3f036f78186093fb26 Mon Sep 17 00:00:00 2001 From: Jeremy Green Date: Wed, 9 Sep 2020 19:27:53 -0500 Subject: [PATCH 2/6] Fix deprecation warning --- features/support/step_definitions.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/features/support/step_definitions.rb b/features/support/step_definitions.rb index 487a264..cb17871 100644 --- a/features/support/step_definitions.rb +++ b/features/support/step_definitions.rb @@ -1,21 +1,21 @@ require 'aruba/api' Then(/^the file "(.*?)" should be (\d+) bytes$/) do |img, size| - expect(File.size(File.join(current_dir, img))).to eql(size.to_i) + expect(File.size(File.join(expand_path("."), img))).to eql(size.to_i) end Then(/^the file "(.*?)" should be less than (\d+) bytes$/) do |img, size| - expect(File.size(File.join(current_dir, img))).to be < size.to_i + expect(File.size(File.join(expand_path("."), img))).to be < size.to_i end Then(/^the manifest should have the right timestamp for "(.*?)"$/) do |file| manifest = YAML.load(File.read(manifest_path)) - file_stamp = File.mtime(File.join(current_dir, file)) + file_stamp = File.mtime(File.join(expand_path("."), file)) expect(manifest[file]).to eql(file_stamp) end Given(/^a primed manifest for "(.*?)"$/) do |file| - manifest = { file: File.mtime(File.join(current_dir, file)) } + manifest = { file: File.mtime(File.join(expand_path("."), file)) } File.open(path, 'w') do |manifest_file| manifest_file.write(YAML.dump(manifest)) end @@ -28,7 +28,7 @@ end Given(/^an updated file at "(.*?)"$/) do |file| - FileUtils.touch(File.join(current_dir, file)) + FileUtils.touch(File.join(expand_path("."), file)) end Given(/^the file "([^"]*)" has mode "([^"]*)"$/) do |file_name, file_mode| @@ -36,10 +36,10 @@ end Then(/^the file "([^\"]*)" should have been updated$/) do |file| - target = File.join(current_dir, file) + target = File.join(expand_path("."), file) expect(File.mtime(target)).not_to eql(@modification_times[target]) end def manifest_path - File.join(current_dir, 'build', 'imageoptim.manifest.yml') + File.join(expand_path("."), 'build', 'imageoptim.manifest.yml') end From f91fffd61b48ed35eb67925392cdac2b7ebc6613 Mon Sep 17 00:00:00 2001 From: Jeremy Green Date: Thu, 10 Sep 2020 00:02:48 -0500 Subject: [PATCH 3/6] Prevent overwriting the manifest in the first phase of the build --- lib/middleman-imageoptim/manifest_resource.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/middleman-imageoptim/manifest_resource.rb b/lib/middleman-imageoptim/manifest_resource.rb index 0e462d0..cd3e2f4 100644 --- a/lib/middleman-imageoptim/manifest_resource.rb +++ b/lib/middleman-imageoptim/manifest_resource.rb @@ -29,10 +29,11 @@ def ignored? private def manifest_content - if @source_file.nil? + path = File.join(@app.config[:build_dir], @destination_path) + if !File.exist?(path) YAML.dump({}) else - File.read(@source_file) + File.read(path) end end end From 6c936c7a062a8647f383b3d54d9c39d58fd76f38 Mon Sep 17 00:00:00 2001 From: Jeremy Green Date: Thu, 10 Sep 2020 00:06:58 -0500 Subject: [PATCH 4/6] Undo some gemspec changes --- middleman-imageoptim.gemspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/middleman-imageoptim.gemspec b/middleman-imageoptim.gemspec index 2edcfad..f261e14 100644 --- a/middleman-imageoptim.gemspec +++ b/middleman-imageoptim.gemspec @@ -16,9 +16,9 @@ Gem::Specification.new do |gem| gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) } gem.require_paths = ['lib'] - gem.add_dependency 'middleman-core', '~> 4.2.0' - gem.add_dependency 'middleman-cli', '~> 4.2.0' - gem.add_dependency 'image_optim', '~> 0.26.0' + gem.add_dependency 'middleman-core', ['>= 3.1'] + gem.add_dependency 'middleman-cli' + gem.add_dependency 'image_optim', '~> 0.25.0' gem.add_dependency 'image_optim_pack', '~> 0.2.1' gem.add_development_dependency 'appraisal' From 7edbc1be9ffed721c7349fe3acc649f28169925a Mon Sep 17 00:00:00 2001 From: Jeremy Green Date: Thu, 10 Sep 2020 00:10:37 -0500 Subject: [PATCH 5/6] Undo some other un-related changes --- features/support/step_definitions.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/features/support/step_definitions.rb b/features/support/step_definitions.rb index cb17871..487a264 100644 --- a/features/support/step_definitions.rb +++ b/features/support/step_definitions.rb @@ -1,21 +1,21 @@ require 'aruba/api' Then(/^the file "(.*?)" should be (\d+) bytes$/) do |img, size| - expect(File.size(File.join(expand_path("."), img))).to eql(size.to_i) + expect(File.size(File.join(current_dir, img))).to eql(size.to_i) end Then(/^the file "(.*?)" should be less than (\d+) bytes$/) do |img, size| - expect(File.size(File.join(expand_path("."), img))).to be < size.to_i + expect(File.size(File.join(current_dir, img))).to be < size.to_i end Then(/^the manifest should have the right timestamp for "(.*?)"$/) do |file| manifest = YAML.load(File.read(manifest_path)) - file_stamp = File.mtime(File.join(expand_path("."), file)) + file_stamp = File.mtime(File.join(current_dir, file)) expect(manifest[file]).to eql(file_stamp) end Given(/^a primed manifest for "(.*?)"$/) do |file| - manifest = { file: File.mtime(File.join(expand_path("."), file)) } + manifest = { file: File.mtime(File.join(current_dir, file)) } File.open(path, 'w') do |manifest_file| manifest_file.write(YAML.dump(manifest)) end @@ -28,7 +28,7 @@ end Given(/^an updated file at "(.*?)"$/) do |file| - FileUtils.touch(File.join(expand_path("."), file)) + FileUtils.touch(File.join(current_dir, file)) end Given(/^the file "([^"]*)" has mode "([^"]*)"$/) do |file_name, file_mode| @@ -36,10 +36,10 @@ end Then(/^the file "([^\"]*)" should have been updated$/) do |file| - target = File.join(expand_path("."), file) + target = File.join(current_dir, file) expect(File.mtime(target)).not_to eql(@modification_times[target]) end def manifest_path - File.join(expand_path("."), 'build', 'imageoptim.manifest.yml') + File.join(current_dir, 'build', 'imageoptim.manifest.yml') end From dfdbaf61b77633de6ae859d1bc41723bc7008b85 Mon Sep 17 00:00:00 2001 From: Jeremy Green Date: Thu, 10 Sep 2020 00:40:01 -0500 Subject: [PATCH 6/6] Update the skip message to be more clear --- lib/middleman-imageoptim/optimizer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/middleman-imageoptim/optimizer.rb b/lib/middleman-imageoptim/optimizer.rb index cda579d..9ea0fac 100644 --- a/lib/middleman-imageoptim/optimizer.rb +++ b/lib/middleman-imageoptim/optimizer.rb @@ -43,7 +43,8 @@ def process_image(source, destination = nil, mode = nil) say_status '%{source} (%{percent_change} / %{size_change} %{size_change_type})', Utils.file_size_stats(source, destination) FileUtils.move(destination, source) else - say_status '[skipped] %{source} not updated', source: source + skip_message = '[skipped] %{source} - optimized version is identical to source (may have been previously optimized)' + say_status skip_message, source: source end ensure ensure_file_mode(mode, source) unless mode.nil?