mirror of
https://github.com/kemko/liquid.git
synced 2026-01-06 10:15:40 +03:00
s/Traversal/ParseTreeVisitor
This commit is contained in:
@@ -45,7 +45,7 @@ module Liquid
|
||||
end
|
||||
|
||||
require "liquid/version"
|
||||
require 'liquid/traversal'
|
||||
require 'liquid/parse_tree_visitor'
|
||||
require 'liquid/lexer'
|
||||
require 'liquid/parser'
|
||||
require 'liquid/i18n'
|
||||
|
||||
@@ -129,7 +129,7 @@ module Liquid
|
||||
end
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
[
|
||||
@node.left, @node.right,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Liquid
|
||||
class Traversal
|
||||
class ParseTreeVisitor
|
||||
def self.for(node, callbacks = Hash.new(proc {}))
|
||||
if defined?(node.class::Traversal)
|
||||
node.class::Traversal
|
||||
if defined?(node.class::ParseTreeVisitor)
|
||||
node.class::ParseTreeVisitor
|
||||
else
|
||||
self
|
||||
end.new(node, callbacks)
|
||||
@@ -23,12 +23,12 @@ module Liquid
|
||||
self
|
||||
end
|
||||
|
||||
def traverse(context = nil)
|
||||
def visit(context = nil)
|
||||
children.map do |node|
|
||||
item, new_context = @callbacks[node.class].call(node, context)
|
||||
[
|
||||
item,
|
||||
Traversal.for(node, @callbacks).traverse(new_context || context)
|
||||
ParseTreeVisitor.for(node, @callbacks).visit(new_context || context)
|
||||
]
|
||||
end
|
||||
end
|
||||
@@ -48,7 +48,7 @@ module Liquid
|
||||
end
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
[@node.from]
|
||||
end
|
||||
|
||||
@@ -83,7 +83,7 @@ module Liquid
|
||||
@blocks << block
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
[@node.left] + @node.blocks
|
||||
end
|
||||
|
||||
@@ -54,7 +54,7 @@ module Liquid
|
||||
end.compact
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
Array(@node.variables)
|
||||
end
|
||||
|
||||
@@ -192,7 +192,7 @@ module Liquid
|
||||
@else_block ? @else_block.render(context) : ''.freeze
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
(super + [@node.limit, @node.from, @node.collection_name]).compact
|
||||
end
|
||||
|
||||
@@ -111,7 +111,7 @@ module Liquid
|
||||
end
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
@node.blocks
|
||||
end
|
||||
|
||||
@@ -110,7 +110,7 @@ module Liquid
|
||||
file_system.read_template_file(context.evaluate(@template_name_expr))
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
[
|
||||
@node.template_name_expr,
|
||||
|
||||
@@ -51,7 +51,7 @@ module Liquid
|
||||
result
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
super + @node.attributes.values + [@node.collection_name]
|
||||
end
|
||||
|
||||
@@ -139,7 +139,7 @@ module Liquid
|
||||
end
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
[@node.name] + @node.filters.flatten
|
||||
end
|
||||
|
||||
@@ -79,7 +79,7 @@ module Liquid
|
||||
[@name, @lookups, @command_flags]
|
||||
end
|
||||
|
||||
class Traversal < Liquid::Traversal
|
||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||
def children
|
||||
@node.lookups
|
||||
end
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'test_helper'
|
||||
|
||||
class TraversalTest < Minitest::Test
|
||||
class ParseTreeVisitorTest < Minitest::Test
|
||||
include Liquid
|
||||
|
||||
def test_variable
|
||||
Reference in New Issue
Block a user