From ee73a231e1134c89943b9f51fd3120a7433fed31 Mon Sep 17 00:00:00 2001 From: Rene Saarsoo Date: Wed, 20 Nov 2013 10:38:15 +0200 Subject: [PATCH] Move html_renderers from TagRegistry to Render::Tags. Again, not generic enough functionality to keep in TagRegistry. --- lib/jsduck/format/class.rb | 4 ++-- lib/jsduck/render/tags.rb | 14 +++++++++++++- lib/jsduck/tag_registry.rb | 18 ------------------ 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/lib/jsduck/format/class.rb b/lib/jsduck/format/class.rb index eb10ae79..b17dc462 100644 --- a/lib/jsduck/format/class.rb +++ b/lib/jsduck/format/class.rb @@ -1,4 +1,4 @@ -require 'jsduck/tag_registry' +require 'jsduck/render/tags' module JsDuck module Format @@ -49,7 +49,7 @@ module JsDuck end def format_tags(context) - TagRegistry.html_renderers.each do |tag| + Render::Tags.renderers.each do |tag| if context[tag.tagname] tag.format(context, @formatter) end diff --git a/lib/jsduck/render/tags.rb b/lib/jsduck/render/tags.rb index 972ae8fe..e7172c37 100644 --- a/lib/jsduck/render/tags.rb +++ b/lib/jsduck/render/tags.rb @@ -10,7 +10,7 @@ module JsDuck # Takes member or class hash. # Returns array of rendered HTML. def self.render(member) - TagRegistry.html_renderers.map do |tag| + renderers.map do |tag| if member[tag.tagname] tag.to_html(member) else @@ -19,6 +19,18 @@ module JsDuck end end + # Returns tags for rendering HTML, sorted in the order they should + # appear in final output. Sorting order is determined by the + # numeric :html_position field. + def self.renderers + if !@renderers + @renderers = TagRegistry.tags.find_all(&:html_position) + @renderers.sort! {|a, b| a.html_position <=> b.html_position } + end + + @renderers + end + # Renders the signatures for a class member. # Returns a string. def self.render_signature(member) diff --git a/lib/jsduck/tag_registry.rb b/lib/jsduck/tag_registry.rb index ab8d163f..18f597f4 100644 --- a/lib/jsduck/tag_registry.rb +++ b/lib/jsduck/tag_registry.rb @@ -26,8 +26,6 @@ module JsDuck @patterns = {} @tagnames = {} @signatures = [] - @html_renderers = [] - @html_renderers_sorted = false @member_types = [] @tags = [] @@ -57,10 +55,6 @@ module JsDuck @signatures << tag.signature end - if tag.html_position - @html_renderers << tag - end - @tags << tag end end @@ -102,18 +96,6 @@ module JsDuck @member_type_regex = Regexp.new("(?:(" + member_type_names.join("|") + ")-)") end - # Returns tags for rendering HTML, sorted in the order they should - # appear in final output. Sorting order is determined by the - # numeric :html_position field. - def html_renderers - if !@html_renderers_sorted - @html_renderers.sort! {|a, b| a.html_position <=> b.html_position } - @html_renderers_sorted = true - end - - @html_renderers - end - # # Accessors for a single tag # -- GitLab