{ "id": "93880", "key": "TIMOB-9799", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "13872", "description": "", "name": "Sprint 2012-16 Core", "archived": true, "released": true, "releaseDate": "2012-08-13" }, { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-08-14T13:38:41.000+0000", "created": "2012-06-25T23:05:51.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "core" ], "versions": [ { "id": "13272", "description": "Release 2.0.1", "name": "Release 2.0.1", "archived": true, "released": true, "releaseDate": "2012-04-16" } ], "issuelinks": [], "assignee": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2012-11-26T21:55:29.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10207", "name": "Tooling" } ], "description": "Would be good to add a format for this. JSDuck supports varargs so we can translate straight through for that format.\r\nIt appears to be supported in JSCA as well, using the \"usage\" field, which can be \"required,\" \"optional,\" \"zero-or-more,\" or \"one-or-more.\"\r\n\r\nPerhaps we could just add a field to the parameter description like repeatable: true or vararg: true?\r\n", "attachment": [], "flagged": false, "summary": "APIDoc: Need way to identify varargs", "creator": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "213104", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "@ARTHUR: Do you happen to know one of the API methods with a varargs? I can't think of any off the top of my head, and it would be good for testing.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-07T06:59:14.000+0000", "updated": "2012-08-07T06:59:14.000+0000" }, { "id": "213401", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "@ARTHUR: Also, do you think we'll need to specify some kind of typed varargs (i.e., varargs, but each element must be a particular type)? Or is just plain old varargs enough?", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-08T14:37:54.000+0000", "updated": "2012-08-08T14:37:54.000+0000" }, { "id": "213563", "author": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@BILL: Sorry for the late response. I think typed varargs would be good. Maybe just a flag to the parameter that says it's repeatable. This should be easy to map to the JsDuck or Google Closure compiler type.\r\n\r\n", "updateAuthor": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-08-09T10:11:28.000+0000", "updated": "2012-08-09T10:11:28.000+0000" }, { "id": "213978", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "TDoc spec update to review:\r\n\r\nhttps://wiki.appcelerator.org/display/guides2/TDoc+Specification#TDocSpecification-MethodParameterSpecification", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-13T05:25:18.000+0000", "updated": "2012-08-13T05:25:18.000+0000" }, { "id": "213982", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "h3. Testing docgen.py html generation\r\n\r\n* Open apidoc/Titanium/Titanium.yml in your bestest most favoritest editor in the wholesy worldsy. (aka vi).\r\n* Find the documentation for the method named {{include}}.\r\n* Add {{repeatable: true}} to {{include}}'s {{name}} parameter.\r\n* Save.\r\n* Run {{python apidoc/docgen.py}}.\r\n* When it's finished, open dist/apidoc/index.html in a browser.\r\n* Navigate to the Titanium module's {{include}} documentation.\r\n* For the {{name}} argument you should see \"...\" after its name and \"Repeatable\" at the end of its summary.\r\n\r\nh3. Testing docgen.py jsca generation\r\n\r\n* Edit Titanium.yml per above if you haven't already (i.e., add {{repeatable: true}} to the {{name}} parameter of the {{include}} method.)\r\n* Run {{python apidoc/docgen.py -f jsca -o dist/apidoc}}.\r\n* When it's finished, open dist/apidoc/api.jsca in a text editor.\r\n* Use the text editor to search for \"one-or-more\".\r\n* You should find {{\"usage\": \"one-or-more\"}} on the entry for the {{name}} parameter of the {{include}} method.\r\n\r\nh3. Testing validate.py\r\n\r\n* Edit Titanium.yml per above if you haven't already (i.e., add {{repeatable: true}} to the {{name}} parameter of the {{include}} method.)\r\n* Run {{python apidoc/validate.py -e -s simple}}. There should be no errors reported concerning the use of {{repeatable}}.\r\n* Change the value of the {{repeatable}} parameter in Titanium.yml's {{include}} method from {{true}} to {{abc}} (an invalid value.)\r\n* Run {{python apidoc/validate.py -e -s simple}}. You should get an error telling you that \"repeatable\" should be either true or false.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-13T05:59:06.000+0000", "updated": "2012-08-13T08:16:30.000+0000" }, { "id": "213983", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "@ARTHUR: Not sure if you'll like what I generate in HTML for this. But I guess our html generator is kinda irrelevant now that we use jsduck, right?", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-13T06:00:29.000+0000", "updated": "2012-08-13T06:00:29.000+0000" }, { "id": "213999", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR ready:\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/pull/2719", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-13T08:18:53.000+0000", "updated": "2012-08-13T08:18:53.000+0000" }, { "id": "214380", "author": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "body": "h3. Testing docgen.py jsduck generation\r\n\r\n* The String.yml file is updated in my PR so you can test with that.\r\n* Run {{python apidoc/docgen.py -f jsduck -o dist/apidoc}}.\r\n* When it's finished, open dist/apidoc/titanium.js in a text editor.\r\n* Use the text editor to search for \"@method format\".\r\n* You should find {{* @param \\{String/Number...\\} value}} in the entry for the {{format}} method.", "updateAuthor": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-08-14T11:31:10.000+0000", "updated": "2012-08-14T11:58:23.000+0000" }, { "id": "214391", "author": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR Ready:\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/pull/2742", "updateAuthor": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-08-14T11:56:57.000+0000", "updated": "2012-08-14T11:56:57.000+0000" }, { "id": "228529", "author": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested with 3.0.0.v20121121161553", "updateAuthor": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-26T21:55:29.000+0000", "updated": "2012-11-26T21:55:29.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }