lib/pug-rails/sprockets/transformer.rb in pug-rails-2.0.3 vs lib/pug-rails/sprockets/transformer.rb in pug-rails-3.0.0.rc1

- old
+ new

@@ -1,32 +1,56 @@ -# encoding: utf-8 +# encoding: UTF-8 # frozen_string_literal: true +require "digest/sha1" + module Pug module Sprockets - # Sprockets 2, 3 & 4 interface - # https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#registering-all-versions-of-sprockets-in-processors + class << self + def compile(source, options = {}) + Pug.compile(source, options) + end + end + + # + # Friendly with sprockets 2.x, 3.x, and 4.x. + # https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors + # class Transformer def initialize(filename, &block) @filename = filename @source = block.call end def render(context, _) self.class.run(@filename, @source, context) end + def cache_key + self.class.cache_key + end + def self.run(filename, source, context) - Pug.compile(source, filename: filename, client: true) + Pug::Sprockets.compile(source, filename: filename, client: true) end def self.call(input) filename = input[:filename] source = input[:data] context = input[:environment].context_class.new(input) result = run(filename, source, context) context.metadata.merge(data: result) + end + + def self.cache_key + [name, + PUG_RUBY_GEM_VERSION, + PUG_RAILS_GEM_VERSION, + Pug.compiler.version, + Pug.compiler.class.name, + Digest::SHA1.hexdigest(Pug.config.to_h.to_a.flatten.map(&:to_s).join("")) + ].join(":").freeze end end end end