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