Created
February 1, 2018 01:58
-
-
Save richseviora/1066660016d7f5795ef6646820e96d72 to your computer and use it in GitHub Desktop.
Rails Cache Digest Rake Task
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace :cache_digests do | |
desc 'Resolves digest for file' | |
task :digest => :environment do | |
abort 'You must provide TEMPLATE for the task to run' unless ENV['TEMPLATE'].present? | |
template_name = CacheDigests.template_name | |
finder = CacheDigests.finder | |
puts "Finder Contents: #{finder.digest_cache.keys}" | |
tree = ActionView::Digestor.tree(template_name, finder, false) | |
puts "Locating Digest for '#{template_name}'" | |
digest = ActionView::Digestor.digest(name: template_name, finder: finder, dependencies: []) | |
puts "digest: #{digest}" | |
puts "dependency_digest: #{tree.dependency_digest(finder, [])}" | |
puts "dependency_map:" | |
puts JSON.pretty_generate(tree.get_map(finder, [])) | |
end | |
class CacheDigests | |
def self.template_name | |
ENV['TEMPLATE'].split('.', 2).first | |
end | |
def self.finder | |
ApplicationController.new.lookup_context | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment