Handle disabled tags errors like other liquid errors (#1275)

This commit is contained in:
Dylan Thacker-Smith
2020-08-18 11:39:54 -04:00
committed by GitHub
parent 2b11efc3ae
commit 5532df880f
4 changed files with 17 additions and 7 deletions
+1
View File
@@ -53,5 +53,6 @@ module Liquid
UndefinedDropMethod = Class.new(Error)
UndefinedFilter = Class.new(Error)
MethodOverrideError = Class.new(Error)
DisabledError = Class.new(Error)
InternalError = Class.new(Error)
end
+6 -3
View File
@@ -5,14 +5,17 @@ module Liquid
module Disableable
def render_to_output_buffer(context, output)
if context.tag_disabled?(tag_name)
output << disabled_error_message
output << disabled_error(context)
return
end
super
end
def disabled_error_message
"#{tag_name} #{parse_context[:locale].t('errors.disabled.tag')}"
def disabled_error(context)
# raise then rescue the exception so that the Context#exception_renderer can re-raise it
raise DisabledError, "#{tag_name} #{parse_context[:locale].t('errors.disabled.tag')}"
rescue DisabledError => exc
context.handle_error(exc, line_number)
end
end
end