class Alchemy::CacheDigests::TemplateTracker
Public Class Methods
call(name, template)
click to toggle source
# File lib/alchemy/cache_digests/template_tracker.rb, line 6 def self.call(name, template) new(name, template).dependencies end
new(name, template)
click to toggle source
# File lib/alchemy/cache_digests/template_tracker.rb, line 10 def initialize(name, template) @name, @template = name, template end
Public Instance Methods
dependencies()
click to toggle source
# File lib/alchemy/cache_digests/template_tracker.rb, line 14 def dependencies case @name.to_s when /^alchemy\/pages\/show/ PageLayout.all.map { |p| "alchemy/page_layouts/_#{p["name"]}" } when /^alchemy\/page_layouts\/_(\w+)/ page_layout = PageLayout.get($1) layout_elements = page_layout.fetch("elements", []) layout_elements.map { |name| "alchemy/elements/_#{name}" } when /^alchemy\/elements\/_(\w+)/ ingredient_types($1).map { |type| "alchemy/ingredients/_#{type.underscore}_view" }.uniq else ActionView::DependencyTracker::ERBTracker.call(@name, @template) end end
Private Instance Methods
ingredient_types(name)
click to toggle source
# File lib/alchemy/cache_digests/template_tracker.rb, line 33 def ingredient_types(name) element = Element.definitions.detect { |e| e["name"] == name } return [] unless element element.fetch("ingredients", []).collect { |c| c["type"] } end