From 497b1350bbfb35ea3e57f5b8363d5d8605930aa6 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 16 Feb 2016 14:25:34 -0800 Subject: [PATCH] convert structs to a regular class --- actionview/lib/action_view/digestor.rb | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/actionview/lib/action_view/digestor.rb b/actionview/lib/action_view/digestor.rb index cba449b53c..9b51579117 100644 --- a/actionview/lib/action_view/digestor.rb +++ b/actionview/lib/action_view/digestor.rb @@ -68,20 +68,21 @@ def self.tree(name, finder, injected = [], partial = false, seen = {}) node = seen[template.identifier] = Node.create(name, logical_name, template, partial) deps = DependencyTracker.find_dependencies(name, template, finder.view_paths) - deps.each do |dep_file| + deps.uniq { |n| n.gsub(%r|/_|, "/") }.each do |dep_file| node.children << tree(dep_file, finder, [], true, seen) end - injected.each do |template| - node.children << Injected.new(template, nil, nil) + injected.each do |injected_dep| + node.children << Injected.new(injected_dep, nil, nil) end node end else - seen[name] = Missing.new(name, logical_name, nil) + seen[name] ||= Missing.new(name, logical_name, nil) end end - class Node < Struct.new(:name, :logical_name, :template, :children) + class Node + attr_reader :name, :logical_name, :template, :children def self.class_for(partial) partial ? Partial : Node end @@ -91,11 +92,14 @@ def self.create(name, logical_name, template, partial) end def initialize(name, logical_name, template, children = []) - super + @name = name + @logical_name = logical_name + @template = template + @children = children end def to_dep(finder) - Digestor.new(name, finder, partial: true) + Digestor.new(name, finder, partial: false) end def digest(stack = []) @@ -116,7 +120,7 @@ def dependency_digest(stack) class Partial < Node def to_dep(finder) - PartialDigestor.new(name, finder, partial: false) + PartialDigestor.new(name, finder, partial: true) end end -- GitLab