Sha256: fc0cb5c7f9b0048777479a5f46a8e2eb7cf3d36b96f9d2a0a838cadc1291fead

Contents?: true

Size: 1.55 KB

Versions: 15

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

require "sprockets/manifest"
require "active_support/core_ext/module/attribute_accessors"

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

Sprockets::Manifest.prepend NonStupidDigestAssets::CompileWithNonDigest

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
alchemy_cms-7.0.2 lib/non_stupid_digest_assets.rb
alchemy_cms-6.1.8 lib/non_stupid_digest_assets.rb
alchemy_cms-6.1.7 lib/non_stupid_digest_assets.rb
alchemy_cms-7.0.1 lib/non_stupid_digest_assets.rb
alchemy_cms-7.0.0 lib/non_stupid_digest_assets.rb
alchemy_cms-7.0.0.pre.rc1 lib/non_stupid_digest_assets.rb
alchemy_cms-6.1.6 lib/non_stupid_digest_assets.rb
alchemy_cms-7.0.0.pre.c lib/non_stupid_digest_assets.rb
alchemy_cms-7.0.0.pre.b lib/non_stupid_digest_assets.rb
alchemy_cms-6.1.5 lib/non_stupid_digest_assets.rb
alchemy_cms-6.0.14 lib/non_stupid_digest_assets.rb
alchemy_cms-6.1.4 lib/non_stupid_digest_assets.rb
alchemy_cms-7.0.0.pre.a lib/non_stupid_digest_assets.rb
alchemy_cms-6.0.13 lib/non_stupid_digest_assets.rb
alchemy_cms-6.1.3 lib/non_stupid_digest_assets.rb