diff --git a/lib/jsdoc/tag/dictionary/definitions.js b/lib/jsdoc/tag/dictionary/definitions.js index 4c9b68f7..0bd66713 100644 --- a/lib/jsdoc/tag/dictionary/definitions.js +++ b/lib/jsdoc/tag/dictionary/definitions.js @@ -251,9 +251,9 @@ exports.defineTags = function(dictionary) { // TODO: handle escaped quotes in values doclet.defaultvalue = 'null'; } - else if (doclet.meta.code.type === 'OBJECTLIT'){ + else if (doclet.meta.code.type === 'OBJECTLIT') { doclet.defaultvalue = String(doclet.meta.code.node.toSource()); - doclet.defaultobject = true; + doclet.defaultvaluetype = 'object'; } } } diff --git a/templates/default/static/styles/jsdoc-default.css b/templates/default/static/styles/jsdoc-default.css index 327b17ad..cbcff70f 100644 --- a/templates/default/static/styles/jsdoc-default.css +++ b/templates/default/static/styles/jsdoc-default.css @@ -202,6 +202,7 @@ h6 .details ul { list-style-type: none; } .details li { margin-left: 30px; padding-top: 6px; } .details pre.prettyprint { margin: 0 } +.details .object-value { padding-top: 0; } .description { margin-bottom: 1em; diff --git a/templates/default/tmpl/details.tmpl b/templates/default/tmpl/details.tmpl index 141bd58a..a18dfdc0 100644 --- a/templates/default/tmpl/details.tmpl +++ b/templates/default/tmpl/details.tmpl @@ -1,12 +1,12 @@ " + data.defaultvalue + ""; - default_object_css = ' style="padding-top: 0;" '; + defaultObjectClass = ' class="object-value"'; } ?>
@@ -67,7 +67,7 @@ if (data.defaultvalue && data.defaultobject){
Default Value:
diff --git a/test/fixtures/defaulttag.js b/test/fixtures/defaulttag.js index e14d4f74..996033a7 100644 --- a/test/fixtures/defaulttag.js +++ b/test/fixtures/defaulttag.js @@ -37,3 +37,11 @@ var header = getHeaders(request); @default */ var obj = { value_a : 'a', value_b : 'b' }; + +/** + * @default + */ +var multilineObject = { + value_a : 'a', + value_b : 'b' +}; diff --git a/test/specs/tags/defaulttag.js b/test/specs/tags/defaulttag.js index bd5987d4..c9a83032 100644 --- a/test/specs/tags/defaulttag.js +++ b/test/specs/tags/defaulttag.js @@ -7,7 +7,8 @@ describe("@default tag", function() { rerrored = (docSet.getByLongname('rerrored') || [])[0], win = (docSet.getByLongname('win') || [])[0], header = (docSet.getByLongname('header') || [])[0], - obj = docSet.getByLongname('obj')[0]; + obj = docSet.getByLongname('obj')[0], + multilineObject = docSet.getByLongname('multilineObject')[0]; it('When symbol set to null has a @default tag with no text, the doclet\'s defaultValue property should be: null', function() { expect(request.defaultvalue).toBe('null'); @@ -37,9 +38,14 @@ describe("@default tag", function() { expect(header.defaultvalue).toBeUndefined(); }); - it('When symbol has a @default tag with an object.', function(){ + it('When symbol has a @default tag with an object, the doclet\'s defaultValue property should contain the stringified object', function() { var expected_value = "{value_a: 'a', value_b: 'b'}"; expect(obj.defaultvalue).toEqual(expected_value); - }) + }); + + it('When symbol has a @default tag with a multiline object, the doclet\'s defaultValue property should contain the properly stringified object', function() { + var expected_value = "{value_a: 'a', value_b: 'b'}"; + expect(obj.defaultvalue).toEqual(expected_value); + }); });