summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2022-02-17 00:51:02 -0700
committerDan Allen <dan.j.allen@gmail.com>2022-02-17 00:51:02 -0700
commitc193c0119d5117a705f93fb6afce874966e4468f (patch)
tree73d48138f07df7b0b632c9b63b71443b01041523 /lib
parent1b4e63330358afc5872b4793bc63d8b356607990 (diff)
resolves #4256 reset registry if activate is called on it again
Diffstat (limited to 'lib')
-rw-r--r--lib/asciidoctor/extensions.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/asciidoctor/extensions.rb b/lib/asciidoctor/extensions.rb
index 80ef5db1..16ddbc37 100644
--- a/lib/asciidoctor/extensions.rb
+++ b/lib/asciidoctor/extensions.rb
@@ -721,6 +721,7 @@ module Extensions
def initialize groups = {}
@groups = groups
+ reset
@preprocessor_extensions = @tree_processor_extensions = @postprocessor_extensions = @include_processor_extensions = @docinfo_processor_extensions = @block_extensions = @block_macro_extensions = @inline_macro_extensions = nil
@document = nil
end
@@ -732,6 +733,7 @@ module Extensions
#
# Returns the instance of this [Registry].
def activate document
+ reset if @document
@document = document
unless (ext_groups = Extensions.groups.values + @groups.values).empty?
ext_groups.each do |group|
@@ -1429,6 +1431,11 @@ module Extensions
end
end
+ def reset
+ @preprocessor_extensions = @tree_processor_extensions = @postprocessor_extensions = @include_processor_extensions = @docinfo_processor_extensions = @block_extensions = @block_macro_extensions = @inline_macro_extensions = nil
+ @document = nil
+ end
+
def resolve_args args, expect
opts = ::Hash === args[-1] ? args.pop : {}
return opts if expect == 1