diff --git a/Gemfile b/Gemfile index 36aee004..594c4887 100644 --- a/Gemfile +++ b/Gemfile @@ -6,8 +6,6 @@ gem "sprockets-rails" gem "jsbundling-rails" gem "terser" -gem "non-stupid-digest-assets" - gem "pg" gem "diff-lcs", require: ['diff-lcs', 'diff/lcs/array'] diff --git a/Gemfile.lock b/Gemfile.lock index 832548a8..5fa1678a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -123,8 +123,6 @@ GEM nokogiri (1.13.10) mini_portile2 (~> 2.8.0) racc (~> 1.4) - non-stupid-digest-assets (1.0.9) - sprockets (>= 2.0) pg (1.4.3) pry (0.14.1) coderay (~> 1.1) @@ -212,7 +210,6 @@ DEPENDENCIES mini_mime newrelic_rpm nokogiri - non-stupid-digest-assets pg pry puma diff --git a/config/initializers/non_digest_assets.rb b/config/initializers/non_digest_assets.rb index a186f6f9..01b665d7 100644 --- a/config/initializers/non_digest_assets.rb +++ b/config/initializers/non_digest_assets.rb @@ -1 +1,4 @@ +require 'non_stupid_digest_assets' + NonStupidDigestAssets.whitelist = ["404.html", "429.html", "500.html"] +Sprockets::Manifest.send(:prepend, NonStupidDigestAssets::CompileWithNonDigest) diff --git a/lib/non_stupid_digest_assets.rb b/lib/non_stupid_digest_assets.rb new file mode 100644 index 00000000..002e9aee --- /dev/null +++ b/lib/non_stupid_digest_assets.rb @@ -0,0 +1,53 @@ +# Taken from [1] with file existence check updated to work with ruby 3.2 +# by renaming `File.exists?` to `File.exist?`. +# +# [1] https://github.com/alexspeller/non-stupid-digest-assets/blob/cb899cc4bad242c9da7c0ef61d4f9e431e020119/lib/non-stupid-digest-assets.rb +require "sprockets/manifest" + +module NonStupidDigestAssets + mattr_accessor :whitelist + @@whitelist = [] + + class << self + def assets(assets) + return assets if whitelist.empty? + whitelisted_assets(assets) + end + + private + + def whitelisted_assets(assets) + assets.select do |logical_path, digest_path| + whitelist.any? do |item| + item === logical_path + end + end + end + end + + module CompileWithNonDigest + def compile *args + paths = super + NonStupidDigestAssets.assets(assets).each do |(logical_path, digest_path)| + full_digest_path = File.join dir, digest_path + full_digest_gz_path = "#{full_digest_path}.gz" + full_non_digest_path = File.join dir, logical_path + full_non_digest_gz_path = "#{full_non_digest_path}.gz" + + if File.exist? full_digest_path + logger.debug "Writing #{full_non_digest_path}" + FileUtils.copy_file full_digest_path, full_non_digest_path, :preserve_attributes + else + logger.debug "Could not find: #{full_digest_path}" + end + if File.exist? full_digest_gz_path + logger.debug "Writing #{full_non_digest_gz_path}" + FileUtils.copy_file full_digest_gz_path, full_non_digest_gz_path, :preserve_attributes + else + logger.debug "Could not find: #{full_digest_gz_path}" + end + end + paths + end + end +end