mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
Broken warnings implementation.
This commit is contained in:
@@ -56,6 +56,21 @@ module Liquid
|
||||
assert_missing_delimitation!
|
||||
end
|
||||
|
||||
# warnings of this block and all sub-tags
|
||||
def warnings
|
||||
all_warnings = []
|
||||
all_warnings.concat(@warnings) if @warnings
|
||||
|
||||
return all_warnings unless @nodelist
|
||||
@nodelist.each do |node|
|
||||
p node
|
||||
node_warns = node.respond_to?(:warnings) ? node.warnings : nil
|
||||
all_warnings.concat(node_warns) if node_warns
|
||||
end
|
||||
|
||||
all_warnings
|
||||
end
|
||||
|
||||
def end_tag
|
||||
end
|
||||
|
||||
|
||||
@@ -33,6 +33,10 @@ module Liquid
|
||||
@blank || true
|
||||
end
|
||||
|
||||
def warnings
|
||||
@warnings
|
||||
end
|
||||
|
||||
def parse_with_selected_parser(markup)
|
||||
case @options[:error_mode] || Template.error_mode
|
||||
when :strict then strict_parse_with_error_context(markup)
|
||||
|
||||
@@ -69,9 +69,17 @@ module Liquid
|
||||
# Returns self for easy chaining
|
||||
def parse(source, options = {})
|
||||
@root = Document.new(tokenize(source), options)
|
||||
@warnings = nil
|
||||
self
|
||||
end
|
||||
|
||||
# memoize because the warnings operation
|
||||
# could be expensive.
|
||||
def warnings
|
||||
return [] unless @root
|
||||
@warnings ||= @root.warnings
|
||||
end
|
||||
|
||||
def registers
|
||||
@registers ||= {}
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user