class Liquid::Document
Attributes
Public Class Methods
Source
# File lib/liquid/document.rb, line 13 def initialize(parse_context) @parse_context = parse_context @body = new_body end
Source
# File lib/liquid/document.rb, line 5 def self.parse(tokens, parse_context) doc = new(parse_context) doc.parse(tokens, parse_context) doc end
Public Instance Methods
Source
# File lib/liquid/document.rb, line 22 def parse(tokenizer, parse_context) while parse_body(tokenizer) end @body.freeze rescue SyntaxError => e e.line_number ||= parse_context.line_number raise end
Source
# File lib/liquid/document.rb, line 44 def render(context) render_to_output_buffer(context, +'') end
Source
# File lib/liquid/document.rb, line 40 def render_to_output_buffer(context, output) @body.render_to_output_buffer(context, output) end
Source
# File lib/liquid/document.rb, line 31 def unknown_tag(tag, _markup, _tokenizer) case tag when 'else', 'end' raise SyntaxError, parse_context.locale.t("errors.syntax.unexpected_outer_tag", tag: tag) else raise SyntaxError, parse_context.locale.t("errors.syntax.unknown_tag", tag: tag) end end
Private Instance Methods
Source
# File lib/liquid/document.rb, line 50 def new_body parse_context.new_block_body end
Source
# File lib/liquid/document.rb, line 54 def parse_body(tokenizer) @body.parse(tokenizer, parse_context) do |unknown_tag_name, unknown_tag_markup| if unknown_tag_name unknown_tag(unknown_tag_name, unknown_tag_markup, tokenizer) true else false end end end