Loading lib/jsduck/doc_parser.rb +13 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ module JsDuck at_author elsif look(/@docauthor\b/) at_docauthor elsif look(/@deprecated\b/) at_deprecated elsif look(/@var\b/) at_var elsif look(/@static\b/) Loading Loading @@ -283,6 +285,17 @@ module JsDuck skip_white end # matches @deprecated <version> some text ... newline def at_deprecated match(/@deprecated/) add_tag(:deprecated) skip_horiz_white @current_tag[:version] = @input.scan(/[0-9.]+/) skip_horiz_white @current_tag[:text] = @input.scan(/.*$/) skip_white end # Used to match @private, @ignore, @hide, ... def boolean_at_tag(regex, propname) match(regex) Loading lib/jsduck/exporter.rb +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ module JsDuck m = m.clone @formatter.doc_context = m m[:doc] = @formatter.format(m[:doc]) if m[:doc] m[:deprecated][:text] = @formatter.format(m[:deprecated][:text]) if m[:deprecated] if m[:params] || @formatter.too_long?(m[:doc]) m[:shortDoc] = @formatter.shorten(m[:doc]) end Loading lib/jsduck/merger.rb +10 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ module JsDuck :return => detect_return(doc_map), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading @@ -152,6 +153,7 @@ module JsDuck :doc => detect_doc(docs), :params => detect_params(docs, code), :private => !!doc_map[:private], :deprecated => detect_deprecated(doc_map), } end Loading @@ -164,6 +166,7 @@ module JsDuck :type => detect_type(:cfg, doc_map, code), :doc => detect_doc(docs), :private => !!doc_map[:private], :deprecated => detect_deprecated(doc_map), } end Loading @@ -177,6 +180,7 @@ module JsDuck :doc => detect_doc(docs), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading @@ -190,6 +194,7 @@ module JsDuck :doc => detect_doc(docs), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading @@ -203,6 +208,7 @@ module JsDuck :params => detect_params(docs, code), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading Loading @@ -291,6 +297,10 @@ module JsDuck doc_map[:docauthor] ? doc_map[:docauthor].first[:name] : nil end def detect_deprecated(doc_map) doc_map[:deprecated] ? doc_map[:deprecated].first : nil end def detect_params(docs, code) implicit = detect_implicit_params(code) explicit = detect_explicit_params(docs) Loading spec/aggregator_deprecated_spec.rb 0 → 100644 +52 −0 Original line number Diff line number Diff line require "jsduck/aggregator" require "jsduck/source_file" describe JsDuck::Aggregator do def parse(string) agr = JsDuck::Aggregator.new agr.aggregate(JsDuck::SourceFile.new(string)) agr.result end describe "@deprecated" do before do @items = parse(<<-EOS) /** * @cfg escapeRe * @deprecated 4.0 Use escapeRegex instead. */ EOS end it "detects deprecation description" do @items[0][:deprecated][:text].should == "Use escapeRegex instead." end it "detects version of deprecation" do @items[0][:deprecated][:version].should == "4.0" end end describe "@deprecated without version number" do before do @items = parse(<<-EOS) /** * @cfg escapeRe * @deprecated Use escapeRegex instead. */ EOS end it "doesn't detect version number" do @items[0][:deprecated][:version].should == nil end it "still detects description" do @items[0][:deprecated][:text].should == "Use escapeRegex instead." end end end template/app/view/cls/Overview.js +18 −6 Original line number Diff line number Diff line Loading @@ -208,19 +208,23 @@ Ext.define('Docs.view.cls.Overview', { }, renderSignature: function(member) { var signature; if (member.tagname === "cfg" || member.tagname === "property") { return "<span> : " + member.type + "</span>"; signature = "<span> : " + member.type + "</span>"; } else { var ps = Ext.Array.map(member.params, this.renderShortParam, this).join(", "); var signature = '( <span class="pre">' + ps + "</span> )"; signature = '( <span class="pre">' + ps + "</span> )"; if (member.tagname === "method") { return signature + " : " + member["return"].type; signature += " : " + member["return"].type; } else { return signature; } if (member.deprecated) { signature += "<strong class='deprecated-signature'>deprecated</strong>"; } return signature; }, renderShortParam: function(param) { Loading @@ -231,6 +235,14 @@ Ext.define('Docs.view.cls.Overview', { renderLongDoc: function(member) { var doc = member.doc; if (member.deprecated) { var v = member.deprecated.version ? "since " + member.deprecated.version : ""; doc += '<div class="deprecated">'; doc += Ext.String.format('<p>This {0} has been <strong>deprecated</strong> {1}</p>', member.tagname, v); doc += member.deprecated.text; doc += '</div>'; } if (member.params && member.params.length > 0) { doc += '<h3 class="pa">Parameters</h3>'; var ps = Ext.Array.map(member.params, this.renderLongParam, this).join(""); Loading Loading
lib/jsduck/doc_parser.rb +13 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ module JsDuck at_author elsif look(/@docauthor\b/) at_docauthor elsif look(/@deprecated\b/) at_deprecated elsif look(/@var\b/) at_var elsif look(/@static\b/) Loading Loading @@ -283,6 +285,17 @@ module JsDuck skip_white end # matches @deprecated <version> some text ... newline def at_deprecated match(/@deprecated/) add_tag(:deprecated) skip_horiz_white @current_tag[:version] = @input.scan(/[0-9.]+/) skip_horiz_white @current_tag[:text] = @input.scan(/.*$/) skip_white end # Used to match @private, @ignore, @hide, ... def boolean_at_tag(regex, propname) match(regex) Loading
lib/jsduck/exporter.rb +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ module JsDuck m = m.clone @formatter.doc_context = m m[:doc] = @formatter.format(m[:doc]) if m[:doc] m[:deprecated][:text] = @formatter.format(m[:deprecated][:text]) if m[:deprecated] if m[:params] || @formatter.too_long?(m[:doc]) m[:shortDoc] = @formatter.shorten(m[:doc]) end Loading
lib/jsduck/merger.rb +10 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ module JsDuck :return => detect_return(doc_map), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading @@ -152,6 +153,7 @@ module JsDuck :doc => detect_doc(docs), :params => detect_params(docs, code), :private => !!doc_map[:private], :deprecated => detect_deprecated(doc_map), } end Loading @@ -164,6 +166,7 @@ module JsDuck :type => detect_type(:cfg, doc_map, code), :doc => detect_doc(docs), :private => !!doc_map[:private], :deprecated => detect_deprecated(doc_map), } end Loading @@ -177,6 +180,7 @@ module JsDuck :doc => detect_doc(docs), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading @@ -190,6 +194,7 @@ module JsDuck :doc => detect_doc(docs), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading @@ -203,6 +208,7 @@ module JsDuck :params => detect_params(docs, code), :private => !!doc_map[:private], :static => !!doc_map[:static], :deprecated => detect_deprecated(doc_map), } end Loading Loading @@ -291,6 +297,10 @@ module JsDuck doc_map[:docauthor] ? doc_map[:docauthor].first[:name] : nil end def detect_deprecated(doc_map) doc_map[:deprecated] ? doc_map[:deprecated].first : nil end def detect_params(docs, code) implicit = detect_implicit_params(code) explicit = detect_explicit_params(docs) Loading
spec/aggregator_deprecated_spec.rb 0 → 100644 +52 −0 Original line number Diff line number Diff line require "jsduck/aggregator" require "jsduck/source_file" describe JsDuck::Aggregator do def parse(string) agr = JsDuck::Aggregator.new agr.aggregate(JsDuck::SourceFile.new(string)) agr.result end describe "@deprecated" do before do @items = parse(<<-EOS) /** * @cfg escapeRe * @deprecated 4.0 Use escapeRegex instead. */ EOS end it "detects deprecation description" do @items[0][:deprecated][:text].should == "Use escapeRegex instead." end it "detects version of deprecation" do @items[0][:deprecated][:version].should == "4.0" end end describe "@deprecated without version number" do before do @items = parse(<<-EOS) /** * @cfg escapeRe * @deprecated Use escapeRegex instead. */ EOS end it "doesn't detect version number" do @items[0][:deprecated][:version].should == nil end it "still detects description" do @items[0][:deprecated][:text].should == "Use escapeRegex instead." end end end
template/app/view/cls/Overview.js +18 −6 Original line number Diff line number Diff line Loading @@ -208,19 +208,23 @@ Ext.define('Docs.view.cls.Overview', { }, renderSignature: function(member) { var signature; if (member.tagname === "cfg" || member.tagname === "property") { return "<span> : " + member.type + "</span>"; signature = "<span> : " + member.type + "</span>"; } else { var ps = Ext.Array.map(member.params, this.renderShortParam, this).join(", "); var signature = '( <span class="pre">' + ps + "</span> )"; signature = '( <span class="pre">' + ps + "</span> )"; if (member.tagname === "method") { return signature + " : " + member["return"].type; signature += " : " + member["return"].type; } else { return signature; } if (member.deprecated) { signature += "<strong class='deprecated-signature'>deprecated</strong>"; } return signature; }, renderShortParam: function(param) { Loading @@ -231,6 +235,14 @@ Ext.define('Docs.view.cls.Overview', { renderLongDoc: function(member) { var doc = member.doc; if (member.deprecated) { var v = member.deprecated.version ? "since " + member.deprecated.version : ""; doc += '<div class="deprecated">'; doc += Ext.String.format('<p>This {0} has been <strong>deprecated</strong> {1}</p>', member.tagname, v); doc += member.deprecated.text; doc += '</div>'; } if (member.params && member.params.length > 0) { doc += '<h3 class="pa">Parameters</h3>'; var ps = Ext.Array.map(member.params, this.renderLongParam, this).join(""); Loading