Loading lib/jsduck/renderer.rb +3 −55 Original line number Diff line number Diff line require 'jsduck/meta_tag_registry' require 'jsduck/html' require 'jsduck/signature_renderer' module JsDuck Loading @@ -12,6 +13,7 @@ module JsDuck def render(cls) @cls = cls @signature = SignatureRenderer.new(cls) return [ "<div>", Loading Loading @@ -241,61 +243,7 @@ module JsDuck end def render_signature(m) expandable = m[:shortDoc] ? "expandable" : "not-expandable" uri = "#!/api/#{m[:owner]}-#{m[:id]}" return [ render_new_signature(m), "<a href='#{uri}' class='name #{expandable}'>#{render_member_name(m)}</a>", render_params_signature(m), render_meta_signatures(m) ] end def render_new_signature(m) constructor?(m) ? "<strong class='new-keyword'>new</strong>" : "" end def render_member_name(m) constructor?(m) ? @cls[:name] : m[:name] end def constructor?(m) m[:tagname] == :method && m[:name] == "constructor" end def render_params_signature(m) if m[:tagname] == :cfg || m[:tagname] == :property || m[:tagname] == :css_var "<span> : #{m[:html_type]}</span>" else ps = m[:params].map {|p| render_short_param(p) }.join(", ") "( <span class='pre'>#{ps}</span> )" + render_return_signature(m) end end def render_return_signature(m) method_with_return?(m) ? (" : " + m[:return][:html_type]) : "" end def method_with_return?(m) m[:tagname] == :method && m[:return][:type] != "undefined" end def render_meta_signatures(m) html = "" MetaTagRegistry.instance.signatures.each do |s| if m[:meta][s[:key]] title = s[:tooltip] ? "title='#{s[:tooltip]}'" : "" html += "<strong class='#{s[:key]} signature' #{title}>#{s[:long]}</strong>" end end html end def render_short_param(param) p = param[:html_type] + " " + param[:name] return param[:optional] ? "["+p+"]" : p @signature.render(m) end def render_long_doc(m) Loading lib/jsduck/signature_renderer.rb 0 → 100644 +99 −0 Original line number Diff line number Diff line require 'jsduck/meta_tag_registry' module JsDuck # Performs the rendering of member signatures. class SignatureRenderer # Initializes the renderer for rendering members of the given # class. def initialize(cls) @cls = cls end # Renders signature of the given member. def render(member) # Keep the code simpler by not passing around the member hash @m = member return [ render_new, render_link, render_type, render_meta, ] end private def render_new constructor? ? "<strong class='new-keyword'>new</strong>" : "" end def render_link "<a href='#{render_url}' class='name #{render_expandable}'>#{render_name}</a>" end def render_url "#!/api/#{@m[:owner]}-#{@m[:id]}" end def render_expandable @m[:shortDoc] ? "expandable" : "not-expandable" end def render_name constructor? ? @cls[:name] : @m[:name] end def constructor? @m[:tagname] == :method && @m[:name] == "constructor" end def render_type if like_property? render_property_type else render_params + render_return end end def like_property? @m[:tagname] == :cfg || @m[:tagname] == :property || @m[:tagname] == :css_var end def render_property_type "<span> : #{@m[:html_type]}</span>" end def render_params ps = @m[:params].map {|p| render_single_param(p) }.join(", ") "( <span class='pre'>#{ps}</span> )" end def render_single_param(param) p = param[:html_type] + " " + param[:name] param[:optional] ? "["+p+"]" : p end def render_return method_with_return? ? (" : " + @m[:return][:html_type]) : "" end def method_with_return? @m[:tagname] == :method && @m[:return][:type] != "undefined" end def render_meta html = "" MetaTagRegistry.instance.signatures.each do |s| if @m[:meta][s[:key]] title = s[:tooltip] ? "title='#{s[:tooltip]}'" : "" html += "<strong class='#{s[:key]} signature' #{title}>#{s[:long]}</strong>" end end html end end end Loading
lib/jsduck/renderer.rb +3 −55 Original line number Diff line number Diff line require 'jsduck/meta_tag_registry' require 'jsduck/html' require 'jsduck/signature_renderer' module JsDuck Loading @@ -12,6 +13,7 @@ module JsDuck def render(cls) @cls = cls @signature = SignatureRenderer.new(cls) return [ "<div>", Loading Loading @@ -241,61 +243,7 @@ module JsDuck end def render_signature(m) expandable = m[:shortDoc] ? "expandable" : "not-expandable" uri = "#!/api/#{m[:owner]}-#{m[:id]}" return [ render_new_signature(m), "<a href='#{uri}' class='name #{expandable}'>#{render_member_name(m)}</a>", render_params_signature(m), render_meta_signatures(m) ] end def render_new_signature(m) constructor?(m) ? "<strong class='new-keyword'>new</strong>" : "" end def render_member_name(m) constructor?(m) ? @cls[:name] : m[:name] end def constructor?(m) m[:tagname] == :method && m[:name] == "constructor" end def render_params_signature(m) if m[:tagname] == :cfg || m[:tagname] == :property || m[:tagname] == :css_var "<span> : #{m[:html_type]}</span>" else ps = m[:params].map {|p| render_short_param(p) }.join(", ") "( <span class='pre'>#{ps}</span> )" + render_return_signature(m) end end def render_return_signature(m) method_with_return?(m) ? (" : " + m[:return][:html_type]) : "" end def method_with_return?(m) m[:tagname] == :method && m[:return][:type] != "undefined" end def render_meta_signatures(m) html = "" MetaTagRegistry.instance.signatures.each do |s| if m[:meta][s[:key]] title = s[:tooltip] ? "title='#{s[:tooltip]}'" : "" html += "<strong class='#{s[:key]} signature' #{title}>#{s[:long]}</strong>" end end html end def render_short_param(param) p = param[:html_type] + " " + param[:name] return param[:optional] ? "["+p+"]" : p @signature.render(m) end def render_long_doc(m) Loading
lib/jsduck/signature_renderer.rb 0 → 100644 +99 −0 Original line number Diff line number Diff line require 'jsduck/meta_tag_registry' module JsDuck # Performs the rendering of member signatures. class SignatureRenderer # Initializes the renderer for rendering members of the given # class. def initialize(cls) @cls = cls end # Renders signature of the given member. def render(member) # Keep the code simpler by not passing around the member hash @m = member return [ render_new, render_link, render_type, render_meta, ] end private def render_new constructor? ? "<strong class='new-keyword'>new</strong>" : "" end def render_link "<a href='#{render_url}' class='name #{render_expandable}'>#{render_name}</a>" end def render_url "#!/api/#{@m[:owner]}-#{@m[:id]}" end def render_expandable @m[:shortDoc] ? "expandable" : "not-expandable" end def render_name constructor? ? @cls[:name] : @m[:name] end def constructor? @m[:tagname] == :method && @m[:name] == "constructor" end def render_type if like_property? render_property_type else render_params + render_return end end def like_property? @m[:tagname] == :cfg || @m[:tagname] == :property || @m[:tagname] == :css_var end def render_property_type "<span> : #{@m[:html_type]}</span>" end def render_params ps = @m[:params].map {|p| render_single_param(p) }.join(", ") "( <span class='pre'>#{ps}</span> )" end def render_single_param(param) p = param[:html_type] + " " + param[:name] param[:optional] ? "["+p+"]" : p end def render_return method_with_return? ? (" : " + @m[:return][:html_type]) : "" end def method_with_return? @m[:tagname] == :method && @m[:return][:type] != "undefined" end def render_meta html = "" MetaTagRegistry.instance.signatures.each do |s| if @m[:meta][s[:key]] title = s[:tooltip] ? "title='#{s[:tooltip]}'" : "" html += "<strong class='#{s[:key]} signature' #{title}>#{s[:long]}</strong>" end end html end end end