Avoid storing options instance variable in BlockBody.

There is no need to pass parse options to the BlockBody initializer, since
it does all the parsing in the parse method, unlike tags which parse the
tag markup in the initializer.
This commit is contained in:
Dylan Thacker-Smith
2014-11-03 17:07:42 -05:00
committed by Justin Li
parent 73fcd42403
commit 15e1d46125
6 changed files with 29 additions and 28 deletions
+11 -5
View File
@@ -1,17 +1,23 @@
module Liquid
class Document < BlockBody
def parse(tokens)
def self.parse(tokens, options)
doc = new
doc.parse(tokens, options)
doc
end
def parse(tokens, options)
super do |end_tag_name, end_tag_params|
unknown_tag(end_tag_name) if end_tag_name
unknown_tag(end_tag_name, options) if end_tag_name
end
end
def unknown_tag(tag)
def unknown_tag(tag, options)
case tag
when 'else'.freeze, 'end'.freeze
raise SyntaxError.new(@options[:locale].t("errors.syntax.unexpected_outer_tag".freeze, :tag => tag))
raise SyntaxError.new(options[:locale].t("errors.syntax.unexpected_outer_tag".freeze, :tag => tag))
else
raise SyntaxError.new(@options[:locale].t("errors.syntax.unknown_tag".freeze, :tag => tag))
raise SyntaxError.new(options[:locale].t("errors.syntax.unknown_tag".freeze, :tag => tag))
end
end
end