aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/digestor.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2016-02-15 14:32:41 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2016-02-16 15:34:16 -0800
commit8fb853a283fa7411908517b32d6adc811f743b22 (patch)
tree6aba00a5beb793fc0b9b01f2d9ee4abfef63356f /actionview/lib/action_view/digestor.rb
parentc9593fc77f31f72bde56e2d370c6aee99fe3e46d (diff)
downloadrails-8fb853a283fa7411908517b32d6adc811f743b22.tar.gz
rails-8fb853a283fa7411908517b32d6adc811f743b22.tar.bz2
rails-8fb853a283fa7411908517b32d6adc811f743b22.zip
clean up classes a little
Diffstat (limited to 'actionview/lib/action_view/digestor.rb')
-rw-r--r--actionview/lib/action_view/digestor.rb35
1 files changed, 23 insertions, 12 deletions
diff --git a/actionview/lib/action_view/digestor.rb b/actionview/lib/action_view/digestor.rb
index 5a07cec773..cba449b53c 100644
--- a/actionview/lib/action_view/digestor.rb
+++ b/actionview/lib/action_view/digestor.rb
@@ -65,33 +65,40 @@ module ActionView
if obj = seen[template.identifier]
obj
else
- klass = partial ? Partial : Node
- node = seen[template.identifier] = klass.new(name, logical_name, template, partial, [])
+ 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|
node.children << tree(dep_file, finder, [], true, seen)
end
injected.each do |template|
- node.children << Injected.new(template, nil, nil, partial, [])
+ node.children << Injected.new(template, nil, nil)
end
node
end
else
- seen[name] = Missing.new(name, logical_name, nil, partial, [])
+ seen[name] = Missing.new(name, logical_name, nil)
end
end
- class Node < Struct.new(:name, :logical_name, :template, :partial, :children)
+ class Node < Struct.new(:name, :logical_name, :template, :children)
+ def self.class_for(partial)
+ partial ? Partial : Node
+ end
+
+ def self.create(name, logical_name, template, partial)
+ class_for(partial).new(name, logical_name, template, [])
+ end
+
+ def initialize(name, logical_name, template, children = [])
+ super
+ end
+
def to_dep(finder)
- if partial
- PartialDigestor.new(name, finder, partial: partial)
- else
- Digestor.new(name, finder, partial: partial)
- end
+ Digestor.new(name, finder, partial: true)
end
- def digest stack = []
+ def digest(stack = [])
Digest::MD5.hexdigest("#{template.source}-#{dependency_digest(stack)}")
end
@@ -107,7 +114,11 @@ module ActionView
end
end
- class Partial < Node; end
+ class Partial < Node
+ def to_dep(finder)
+ PartialDigestor.new(name, finder, partial: false)
+ end
+ end
class Missing < Node
def digest(_ = [])