diff --git a/lib/jsduck/tag/tag.rb b/lib/jsduck/tag/tag.rb index adf5ec6e112c2fc5d4d7ee29a9770edd6a048206..a2506b58c5a48b977280036681a3ec94c4a212b5 100644 --- a/lib/jsduck/tag/tag.rb +++ b/lib/jsduck/tag/tag.rb @@ -70,11 +70,8 @@ module JsDuck::Tag end # In the context of which members or classes invoke the #merge - # method. Possible values are: - # - # - :class - # - :member - # + # method. This can be either a single tagname like :class, + # :method, :cfg or an array of these. attr_reader :merge_context # Merges documentation and code hashes into the result hash. diff --git a/lib/jsduck/tag_registry.rb b/lib/jsduck/tag_registry.rb index 4b2f73fa691aabf2949dde5fc8cbb8fe3e6c32bc..fabd61005845dd9a6e3ce05b52318e4da106c81f 100644 --- a/lib/jsduck/tag_registry.rb +++ b/lib/jsduck/tag_registry.rb @@ -12,7 +12,7 @@ module JsDuck @ext_define_patterns = {} @ext_define_defaults = {} @keys = {} - @mergers = {:class => [], :member => []} + @mergers = {} @signatures = [] @html_renderers = {:top => [], :bottom => []} @member_types = [] @@ -42,8 +42,9 @@ module JsDuck if tag.key @keys[tag.key] = tag end - if tag.merge_context - @mergers[tag.merge_context] << tag + Array(tag.merge_context).each do |context| + @mergers[context] = [] unless @mergers[context] + @mergers[context] << tag end if tag.member_type @member_types << tag.member_type