Sha256: 2bffdaeae5f757a6a29a1ed8892ac23c7a0730af21feee7f8b031debfa4f6d02
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module Munge module Routers class Fingerprint def initialize(extensions:, separator:) @extensions = extensions @separator = separator end def type :route end def match?(_initial_route, item) if item.frontmatter.key?(:fingerprint_asset) return item.frontmatter[:fingerprint_asset] end intersection = item.extensions & @extensions if intersection.size == 0 false else true end end def call(initial_route, item) generate_link(initial_route, item.compiled_content) end private def generate_link(initial_route, content) pre, extension = disassemble(initial_route) asset_hash = hash(content) if extension == "" "#{pre}#{@separator}#{asset_hash}" else "#{pre}#{@separator}#{asset_hash}.#{extension}" end end def hash(content) Digest::MD5.hexdigest(content) end def disassemble(path) extension = Util::Path.extname(path) path_without_extension = Util::Path.path_no_extension(path) [ path_without_extension, extension ] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
munge-0.6.0 | lib/munge/routers/fingerprint.rb |