diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2016-02-15 14:32:41 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2016-02-16 15:34:16 -0800 |
commit | 8fb853a283fa7411908517b32d6adc811f743b22 (patch) | |
tree | 6aba00a5beb793fc0b9b01f2d9ee4abfef63356f /actionview/lib/action_view | |
parent | c9593fc77f31f72bde56e2d370c6aee99fe3e46d (diff) | |
download | rails-8fb853a283fa7411908517b32d6adc811f743b22.tar.gz rails-8fb853a283fa7411908517b32d6adc811f743b22.tar.bz2 rails-8fb853a283fa7411908517b32d6adc811f743b22.zip |
clean up classes a little
Diffstat (limited to 'actionview/lib/action_view')
-rw-r--r-- | actionview/lib/action_view/digestor.rb | 35 |
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(_ = []) |