From 1064afca5c6e5489ab991ef4756e43247adb60fb Mon Sep 17 00:00:00 2001 From: Uwe Kubosch <103986342+UweKubosch@users.noreply.github.com> Date: Wed, 24 Aug 2022 08:28:05 +0200 Subject: [PATCH] Allow single quotes in config/importmaps.rb --- lib/importmap/packager.rb | 4 ++-- test/packager_single_quotes_test.rb | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 test/packager_single_quotes_test.rb diff --git a/lib/importmap/packager.rb b/lib/importmap/packager.rb index 73c1411..0828465 100644 --- a/lib/importmap/packager.rb +++ b/lib/importmap/packager.rb @@ -48,7 +48,7 @@ def vendored_pin_for(package, url) end def packaged?(package) - importmap.match(/^pin "#{package}".*$/) + importmap.match(/^pin ["']#{package}["'].*$/) end def download(package, url) @@ -102,7 +102,7 @@ def remove_existing_package_file(package) def remove_package_from_importmap(package) all_lines = File.readlines(@importmap_path) - with_lines_removed = all_lines.select { |line| line !~ /pin "#{package}"/ } + with_lines_removed = all_lines.grep_v(/pin ["']#{package}["']/) File.open(@importmap_path, "w") do |file| with_lines_removed.each { |line| file.write(line) } diff --git a/test/packager_single_quotes_test.rb b/test/packager_single_quotes_test.rb new file mode 100644 index 0000000..519d9e7 --- /dev/null +++ b/test/packager_single_quotes_test.rb @@ -0,0 +1,22 @@ +require "test_helper" +require "importmap/packager" + +class Importmap::PackagerSingleQuotesTest < ActiveSupport::TestCase + setup do + @single_quote_config_name = Rails.root.join("config/importmap_with_single_quotes.rb") + File.write(@single_quote_config_name, File.read(Rails.root.join("config/importmap.rb")).tr('"', "'")) + @packager = Importmap::Packager.new(@single_quote_config_name) + end + + teardown { File.delete(@single_quote_config_name) } + + test "packaged? with single quotes" do + assert @packager.packaged?("md5") + assert_not @packager.packaged?("md5-extension") + end + + test "remove package with single quotes" do + assert @packager.remove("md5") + assert_not @packager.packaged?("md5") + end +end