@@ -34,15 +34,15 @@ def unknown_tag(tag_name, _markup, _tokenizer)
3434 end
3535
3636 # @api private
37- def self . raise_unknown_tag ( tag , block_name , block_delimiter , parse_context )
37+ def self . raise_unknown_tag ( tag , block_name , block_delimiter , parse_context , supports_end_tag = true )
3838 if tag == 'else'
3939 raise SyntaxError , parse_context . locale . t (
4040 "errors.syntax.unexpected_else" ,
4141 block_name : block_name ,
4242 )
4343 elsif tag . start_with? ( 'end' )
4444 raise SyntaxError , parse_context . locale . t (
45- "errors.syntax.invalid_delimiter" ,
45+ supports_end_tag ? "errors.syntax.invalid_delimiter" : "errors.syntax.invalid_delimiter_no_end ",
4646 tag : tag ,
4747 block_name : block_name ,
4848 block_delimiter : block_delimiter ,
@@ -64,6 +64,10 @@ def block_delimiter
6464 @block_delimiter ||= "end#{ block_name } "
6565 end
6666
67+ def supports_end_tag?
68+ true
69+ end
70+
6771 private
6872
6973 # @api public
@@ -81,7 +85,7 @@ def parse_body(body, tokens)
8185 body . parse ( tokens , parse_context ) do |end_tag_name , end_tag_params |
8286 @blank &&= body . blank?
8387
84- return false if end_tag_name == block_delimiter
88+ return false if end_tag_name == block_delimiter || ( supports_end_tag? && end_tag_name == 'end' )
8589 raise_tag_never_closed ( block_name ) unless end_tag_name
8690
8791 # this tag is not registered with the system
0 commit comments