distil 0.11.6 → 0.11.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. data/VERSION +1 -1
  2. data/assets/distil.js +2 -1
  3. data/bin/distil +2 -0
  4. data/distil.gemspec +152 -2
  5. data/lib/distil/configurable.rb +3 -1
  6. data/lib/distil/error-reporter.rb +2 -0
  7. data/lib/distil/product/concatenated.rb +1 -3
  8. data/lib/distil/product/debug.rb +1 -3
  9. data/lib/distil/product/javascript-product.rb +2 -8
  10. data/lib/distil/product.rb +5 -5
  11. data/lib/distil/project/distil-project.rb +18 -1
  12. data/lib/distil/project/external-project.rb +1 -1
  13. data/lib/distil/project/remote-project.rb +39 -0
  14. data/lib/distil/project.rb +18 -9
  15. data/lib/distil/target.rb +13 -12
  16. data/lib/distil/task/css-dependency-task.rb +1 -1
  17. data/lib/distil/task/validate-js-task.rb +6 -1
  18. data/lib/distil.rb +1 -0
  19. data/vendor/pdoc/LICENSE +16 -0
  20. data/vendor/pdoc/PDoc.tmbundle/Commands/Continue PDoc Comment.tmCommand +39 -0
  21. data/vendor/pdoc/PDoc.tmbundle/Macros/Collapse PDoc Blocks.tmMacro +4084 -0
  22. data/vendor/pdoc/PDoc.tmbundle/Macros/Expand PDoc Blocks.tmMacro +1388 -0
  23. data/vendor/pdoc/PDoc.tmbundle/Preferences/PDoc.tmPreferences +50 -0
  24. data/vendor/pdoc/PDoc.tmbundle/Snippets/class.tmSnippet +24 -0
  25. data/vendor/pdoc/PDoc.tmbundle/Snippets/constant.tmSnippet +22 -0
  26. data/vendor/pdoc/PDoc.tmbundle/Snippets/event.tmSnippet +16 -0
  27. data/vendor/pdoc/PDoc.tmbundle/Snippets/method.tmSnippet +22 -0
  28. data/vendor/pdoc/PDoc.tmbundle/Snippets/mixin.tmSnippet +23 -0
  29. data/vendor/pdoc/PDoc.tmbundle/Snippets/namespace.tmSnippet +24 -0
  30. data/vendor/pdoc/PDoc.tmbundle/Snippets/param.tmSnippet +16 -0
  31. data/vendor/pdoc/PDoc.tmbundle/Snippets/property.tmSnippet +22 -0
  32. data/vendor/pdoc/PDoc.tmbundle/Snippets/section.tmSnippet +23 -0
  33. data/vendor/pdoc/PDoc.tmbundle/Syntaxes/PDoc.tmLanguage +33 -0
  34. data/vendor/pdoc/PDoc.tmbundle/info.plist +22 -0
  35. data/vendor/pdoc/README.markdown +34 -0
  36. data/vendor/pdoc/Rakefile +46 -0
  37. data/vendor/pdoc/bin/pdoc +58 -0
  38. data/vendor/pdoc/lib/pdoc/error.rb +4 -0
  39. data/vendor/pdoc/lib/pdoc/generators/abstract_generator.rb +16 -0
  40. data/vendor/pdoc/lib/pdoc/generators/html/helpers.rb +256 -0
  41. data/vendor/pdoc/lib/pdoc/generators/html/page.rb +71 -0
  42. data/vendor/pdoc/lib/pdoc/generators/html/syntax_highlighter.rb +41 -0
  43. data/vendor/pdoc/lib/pdoc/generators/html/template.rb +37 -0
  44. data/vendor/pdoc/lib/pdoc/generators/html/website.rb +194 -0
  45. data/vendor/pdoc/lib/pdoc/generators/html.rb +8 -0
  46. data/vendor/pdoc/lib/pdoc/generators/json.rb +15 -0
  47. data/vendor/pdoc/lib/pdoc/generators/pythonesque.rb +105 -0
  48. data/vendor/pdoc/lib/pdoc/generators.rb +6 -0
  49. data/vendor/pdoc/lib/pdoc/models/argument.rb +37 -0
  50. data/vendor/pdoc/lib/pdoc/models/base.rb +107 -0
  51. data/vendor/pdoc/lib/pdoc/models/callable.rb +19 -0
  52. data/vendor/pdoc/lib/pdoc/models/class.rb +28 -0
  53. data/vendor/pdoc/lib/pdoc/models/class_method.rb +18 -0
  54. data/vendor/pdoc/lib/pdoc/models/class_property.rb +9 -0
  55. data/vendor/pdoc/lib/pdoc/models/constant.rb +9 -0
  56. data/vendor/pdoc/lib/pdoc/models/constructor.rb +14 -0
  57. data/vendor/pdoc/lib/pdoc/models/container.rb +114 -0
  58. data/vendor/pdoc/lib/pdoc/models/entity.rb +54 -0
  59. data/vendor/pdoc/lib/pdoc/models/instance_method.rb +18 -0
  60. data/vendor/pdoc/lib/pdoc/models/instance_property.rb +9 -0
  61. data/vendor/pdoc/lib/pdoc/models/mixin.rb +10 -0
  62. data/vendor/pdoc/lib/pdoc/models/namespace.rb +10 -0
  63. data/vendor/pdoc/lib/pdoc/models/root.rb +27 -0
  64. data/vendor/pdoc/lib/pdoc/models/section.rb +19 -0
  65. data/vendor/pdoc/lib/pdoc/models/signature.rb +27 -0
  66. data/vendor/pdoc/lib/pdoc/models/utility.rb +11 -0
  67. data/vendor/pdoc/lib/pdoc/models.rb +47 -0
  68. data/vendor/pdoc/lib/pdoc/parser/argument_description_nodes.rb +21 -0
  69. data/vendor/pdoc/lib/pdoc/parser/basic_nodes.rb +31 -0
  70. data/vendor/pdoc/lib/pdoc/parser/description_nodes.rb +42 -0
  71. data/vendor/pdoc/lib/pdoc/parser/documentation_nodes.rb +483 -0
  72. data/vendor/pdoc/lib/pdoc/parser/ebnf_arguments_nodes.rb +58 -0
  73. data/vendor/pdoc/lib/pdoc/parser/ebnf_expression_nodes.rb +227 -0
  74. data/vendor/pdoc/lib/pdoc/parser/fragment.rb +55 -0
  75. data/vendor/pdoc/lib/pdoc/parser/section_content_nodes.rb +19 -0
  76. data/vendor/pdoc/lib/pdoc/parser/tags_nodes.rb +14 -0
  77. data/vendor/pdoc/lib/pdoc/parser/treetop_files/argument_description.treetop +31 -0
  78. data/vendor/pdoc/lib/pdoc/parser/treetop_files/basic.treetop +41 -0
  79. data/vendor/pdoc/lib/pdoc/parser/treetop_files/description.treetop +7 -0
  80. data/vendor/pdoc/lib/pdoc/parser/treetop_files/documentation.treetop +75 -0
  81. data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_arguments.treetop +33 -0
  82. data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_expression.treetop +70 -0
  83. data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_javascript.treetop +54 -0
  84. data/vendor/pdoc/lib/pdoc/parser/treetop_files/events.treetop +17 -0
  85. data/vendor/pdoc/lib/pdoc/parser/treetop_files/section_content.treetop +8 -0
  86. data/vendor/pdoc/lib/pdoc/parser/treetop_files/tags.treetop +31 -0
  87. data/vendor/pdoc/lib/pdoc/parser.rb +109 -0
  88. data/vendor/pdoc/lib/pdoc/runner.rb +110 -0
  89. data/vendor/pdoc/lib/pdoc/treemaker.rb +94 -0
  90. data/vendor/pdoc/lib/pdoc.rb +32 -0
  91. data/vendor/pdoc/pdoc-0.2.0.gem +0 -0
  92. data/vendor/pdoc/pdoc.gemspec +31 -0
  93. data/vendor/pdoc/templates/html/assets/images/pdoc/alias.png +0 -0
  94. data/vendor/pdoc/templates/html/assets/images/pdoc/class.png +0 -0
  95. data/vendor/pdoc/templates/html/assets/images/pdoc/class_deprecated.png +0 -0
  96. data/vendor/pdoc/templates/html/assets/images/pdoc/class_method.png +0 -0
  97. data/vendor/pdoc/templates/html/assets/images/pdoc/class_property.png +0 -0
  98. data/vendor/pdoc/templates/html/assets/images/pdoc/constant.png +0 -0
  99. data/vendor/pdoc/templates/html/assets/images/pdoc/constructor.png +0 -0
  100. data/vendor/pdoc/templates/html/assets/images/pdoc/deprecated.png +0 -0
  101. data/vendor/pdoc/templates/html/assets/images/pdoc/description.png +0 -0
  102. data/vendor/pdoc/templates/html/assets/images/pdoc/information.png +0 -0
  103. data/vendor/pdoc/templates/html/assets/images/pdoc/instance_method.png +0 -0
  104. data/vendor/pdoc/templates/html/assets/images/pdoc/instance_property.png +0 -0
  105. data/vendor/pdoc/templates/html/assets/images/pdoc/method.png +0 -0
  106. data/vendor/pdoc/templates/html/assets/images/pdoc/method_deprecated.png +0 -0
  107. data/vendor/pdoc/templates/html/assets/images/pdoc/mixin.png +0 -0
  108. data/vendor/pdoc/templates/html/assets/images/pdoc/namespace.png +0 -0
  109. data/vendor/pdoc/templates/html/assets/images/pdoc/property.png +0 -0
  110. data/vendor/pdoc/templates/html/assets/images/pdoc/related_to.png +0 -0
  111. data/vendor/pdoc/templates/html/assets/images/pdoc/search-background.png +0 -0
  112. data/vendor/pdoc/templates/html/assets/images/pdoc/section-background.png +0 -0
  113. data/vendor/pdoc/templates/html/assets/images/pdoc/section.png +0 -0
  114. data/vendor/pdoc/templates/html/assets/images/pdoc/selected-section-background.png +0 -0
  115. data/vendor/pdoc/templates/html/assets/images/pdoc/subclass.png +0 -0
  116. data/vendor/pdoc/templates/html/assets/images/pdoc/superclass.png +0 -0
  117. data/vendor/pdoc/templates/html/assets/images/pdoc/utility.png +0 -0
  118. data/vendor/pdoc/templates/html/assets/javascripts/pdoc/application.js +478 -0
  119. data/vendor/pdoc/templates/html/assets/javascripts/pdoc/prototype.js +4874 -0
  120. data/vendor/pdoc/templates/html/assets/javascripts/pdoc/tabs.js +506 -0
  121. data/vendor/pdoc/templates/html/assets/stylesheets/pdoc/api.css +677 -0
  122. data/vendor/pdoc/templates/html/assets/stylesheets/pdoc/pygments.css +62 -0
  123. data/vendor/pdoc/templates/html/helpers.rb +35 -0
  124. data/vendor/pdoc/templates/html/index.erb +18 -0
  125. data/vendor/pdoc/templates/html/item_index.js.erb +6 -0
  126. data/vendor/pdoc/templates/html/layout.erb +67 -0
  127. data/vendor/pdoc/templates/html/leaf.erb +22 -0
  128. data/vendor/pdoc/templates/html/node.erb +30 -0
  129. data/vendor/pdoc/templates/html/partials/class_relationships.erb +19 -0
  130. data/vendor/pdoc/templates/html/partials/classes.erb +7 -0
  131. data/vendor/pdoc/templates/html/partials/constructor.erb +5 -0
  132. data/vendor/pdoc/templates/html/partials/description.erb +5 -0
  133. data/vendor/pdoc/templates/html/partials/link_list.erb +1 -0
  134. data/vendor/pdoc/templates/html/partials/method_signatures.erb +14 -0
  135. data/vendor/pdoc/templates/html/partials/methodized_note.erb +9 -0
  136. data/vendor/pdoc/templates/html/partials/mixins.erb +7 -0
  137. data/vendor/pdoc/templates/html/partials/namespaces.erb +7 -0
  138. data/vendor/pdoc/templates/html/partials/related_utilities.erb +5 -0
  139. data/vendor/pdoc/templates/html/partials/relationships.erb +11 -0
  140. data/vendor/pdoc/templates/html/partials/short_description_list.erb +7 -0
  141. data/vendor/pdoc/templates/html/partials/title.erb +22 -0
  142. data/vendor/pdoc/templates/html/section.erb +18 -0
  143. data/vendor/pdoc/test/fixtures/ajax.js +809 -0
  144. data/vendor/pdoc/test/fixtures/prototype.js +5789 -0
  145. data/vendor/pdoc/test/fixtures/test.txt +1 -0
  146. data/vendor/pdoc/test/fixtures/text.txt +13 -0
  147. data/vendor/pdoc/test/unit/parser/argument_description_test.rb +40 -0
  148. data/vendor/pdoc/test/unit/parser/basic_test.rb +55 -0
  149. data/vendor/pdoc/test/unit/parser/description_test.rb +34 -0
  150. data/vendor/pdoc/test/unit/parser/documentation_test.rb +520 -0
  151. data/vendor/pdoc/test/unit/parser/ebnf_arguments_test.rb +81 -0
  152. data/vendor/pdoc/test/unit/parser/ebnf_expression_test.rb +382 -0
  153. data/vendor/pdoc/test/unit/parser/ebnf_javascript_test.rb +37 -0
  154. data/vendor/pdoc/test/unit/parser/events_test.rb +27 -0
  155. data/vendor/pdoc/test/unit/parser/section_content_test.rb +44 -0
  156. data/vendor/pdoc/test/unit/parser/tags_test.rb +39 -0
  157. data/vendor/pdoc/test/unit/parser/test_fragment.rb +80 -0
  158. data/vendor/pdoc/test/unit/parser_test_helper.rb +62 -0
  159. data/vendor/pdoc/test/unit/runner/basic_test.rb +14 -0
  160. data/vendor/pdoc/test/unit/templates/html_helpers_test.rb +25 -0
  161. data/vendor/pdoc/vendor/albino.rb +122 -0
  162. data/vendor/pdoc/website/html/documentation.html +280 -0
  163. data/vendor/pdoc/website/html/images/pdoc.jpg +0 -0
  164. data/vendor/pdoc/website/html/index.html +84 -0
  165. data/vendor/pdoc/website/html/stylesheets/main.css +73 -0
  166. data/vendor/pdoc/website/html/stylesheets/reset.css +18 -0
  167. data/vendor/pdoc/website/markdown/syntax.markdown +226 -0
  168. metadata +153 -3
@@ -0,0 +1,50 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>name</key>
6
+ <string>PDoc</string>
7
+ <key>scope</key>
8
+ <string>comment.block</string>
9
+ <key>settings</key>
10
+ <dict>
11
+ <key>smartTypingPairs</key>
12
+ <array>
13
+ <array>
14
+ <string>"</string>
15
+ <string>"</string>
16
+ </array>
17
+ <array>
18
+ <string>(</string>
19
+ <string>)</string>
20
+ </array>
21
+ <array>
22
+ <string>{</string>
23
+ <string>}</string>
24
+ </array>
25
+ <array>
26
+ <string>[</string>
27
+ <string>]</string>
28
+ </array>
29
+ <array>
30
+ <string>“</string>
31
+ <string>”</string>
32
+ </array>
33
+ <array>
34
+ <string>‘</string>
35
+ <string>’</string>
36
+ </array>
37
+ <array>
38
+ <string>`</string>
39
+ <string>`</string>
40
+ </array>
41
+ <array>
42
+ <string>_</string>
43
+ <string>_</string>
44
+ </array>
45
+ </array>
46
+ </dict>
47
+ <key>uuid</key>
48
+ <string>1711013A-1566-488B-816B-AB5614C47B7D</string>
49
+ </dict>
50
+ </plist>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>/**
7
+ * class ${1:class name}${2: &lt; ${3:super class}}
8
+ * ${4: includes ${5:mixin}}
9
+ * $0
10
+ *
11
+ *
12
+ *
13
+ *
14
+ **/</string>
15
+ <key>name</key>
16
+ <string>class</string>
17
+ <key>scope</key>
18
+ <string>source.js</string>
19
+ <key>tabTrigger</key>
20
+ <string>doc class</string>
21
+ <key>uuid</key>
22
+ <string>9805E27A-D127-4A3E-A51E-39B844228FD8</string>
23
+ </dict>
24
+ </plist>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>/**
7
+ * ${1:Class}.${2:ConstantName}
8
+ * $0
9
+ *
10
+ *
11
+ *
12
+ **/</string>
13
+ <key>name</key>
14
+ <string>constant</string>
15
+ <key>scope</key>
16
+ <string>source.js</string>
17
+ <key>tabTrigger</key>
18
+ <string>doc constant</string>
19
+ <key>uuid</key>
20
+ <string>EFF335C1-ACCE-4684-8C61-94AF724227DB</string>
21
+ </dict>
22
+ </plist>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>fires ${2:namespace}:${4:eventName}$0</string>
7
+ <key>name</key>
8
+ <string>event</string>
9
+ <key>scope</key>
10
+ <string>source.js</string>
11
+ <key>tabTrigger</key>
12
+ <string>doc event</string>
13
+ <key>uuid</key>
14
+ <string>460ABE5C-0250-474D-9401-C01F8743C5A4</string>
15
+ </dict>
16
+ </plist>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>/**
7
+ * ${1:Class}${2:#}${3:methodName}(${4:parameters})
8
+ * $0
9
+ *
10
+ *
11
+ *
12
+ **/</string>
13
+ <key>name</key>
14
+ <string>method</string>
15
+ <key>scope</key>
16
+ <string>source.js</string>
17
+ <key>tabTrigger</key>
18
+ <string>doc method</string>
19
+ <key>uuid</key>
20
+ <string>15D39C72-C707-4C30-9DCA-BEB3073FE3D2</string>
21
+ </dict>
22
+ </plist>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>/**
7
+ * mixin ${1:mixin name}
8
+ * $0
9
+ *
10
+ *
11
+ *
12
+ *
13
+ **/</string>
14
+ <key>name</key>
15
+ <string>mixin</string>
16
+ <key>scope</key>
17
+ <string>source.js</string>
18
+ <key>tabTrigger</key>
19
+ <string>doc mixin</string>
20
+ <key>uuid</key>
21
+ <string>82FA7BB9-A47F-419E-8AB2-8E78235E280E</string>
22
+ </dict>
23
+ </plist>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>/**
7
+ * ${1:namespace name}
8
+ * ${2: includes ${3:mixin}}
9
+ * $0
10
+ *
11
+ *
12
+ *
13
+ *
14
+ **/</string>
15
+ <key>name</key>
16
+ <string>namespace</string>
17
+ <key>scope</key>
18
+ <string>source.js</string>
19
+ <key>tabTrigger</key>
20
+ <string>doc ns</string>
21
+ <key>uuid</key>
22
+ <string>2B83660B-5296-4C53-953C-5088AEEAA47A</string>
23
+ </dict>
24
+ </plist>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>- ${1:param name}${2: (${3:allowed types})}: ${4:description}</string>
7
+ <key>name</key>
8
+ <string>param</string>
9
+ <key>scope</key>
10
+ <string>source.js</string>
11
+ <key>tabTrigger</key>
12
+ <string>doc param</string>
13
+ <key>uuid</key>
14
+ <string>31545749-99C9-43D7-8397-F895E42058C4</string>
15
+ </dict>
16
+ </plist>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>/**
7
+ * ${1:Class}${2:#}${3:propName}
8
+ * $0
9
+ *
10
+ *
11
+ *
12
+ **/</string>
13
+ <key>name</key>
14
+ <string>property</string>
15
+ <key>scope</key>
16
+ <string>source.js</string>
17
+ <key>tabTrigger</key>
18
+ <string>doc prop</string>
19
+ <key>uuid</key>
20
+ <string>39699591-AFD0-4B2C-BA41-29B55445F472</string>
21
+ </dict>
22
+ </plist>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>content</key>
6
+ <string>/**
7
+ * == ${1:section name} ==
8
+ * $0
9
+ *
10
+ *
11
+ *
12
+ *
13
+ **/</string>
14
+ <key>name</key>
15
+ <string>section</string>
16
+ <key>scope</key>
17
+ <string>source.js</string>
18
+ <key>tabTrigger</key>
19
+ <string>doc section</string>
20
+ <key>uuid</key>
21
+ <string>8C7DCFEE-3EB2-4DB9-AF0C-2F35534F2A45</string>
22
+ </dict>
23
+ </plist>
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>fileTypes</key>
6
+ <array>
7
+ <string>js</string>
8
+ </array>
9
+ <key>foldingStartMarker</key>
10
+ <string>/\*\*|\{\s*$</string>
11
+ <key>foldingStopMarker</key>
12
+ <string>\*\*/|^\s*\}</string>
13
+ <key>keyEquivalent</key>
14
+ <string>^~J</string>
15
+ <key>name</key>
16
+ <string>PDoc</string>
17
+ <key>patterns</key>
18
+ <array>
19
+ <dict>
20
+ <key>include</key>
21
+ <string>source.prototype.js</string>
22
+ </dict>
23
+ <dict>
24
+ <key>include</key>
25
+ <string>source.js</string>
26
+ </dict>
27
+ </array>
28
+ <key>scopeName</key>
29
+ <string>source.js.pdoc</string>
30
+ <key>uuid</key>
31
+ <string>E8B01951-A6A4-4B14-A314-31903479BF59</string>
32
+ </dict>
33
+ </plist>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>name</key>
6
+ <string>PDoc</string>
7
+ <key>ordering</key>
8
+ <array>
9
+ <string>8C7DCFEE-3EB2-4DB9-AF0C-2F35534F2A45</string>
10
+ <string>9805E27A-D127-4A3E-A51E-39B844228FD8</string>
11
+ <string>2B83660B-5296-4C53-953C-5088AEEAA47A</string>
12
+ <string>82FA7BB9-A47F-419E-8AB2-8E78235E280E</string>
13
+ <string>15D39C72-C707-4C30-9DCA-BEB3073FE3D2</string>
14
+ <string>39699591-AFD0-4B2C-BA41-29B55445F472</string>
15
+ <string>EFF335C1-ACCE-4684-8C61-94AF724227DB</string>
16
+ <string>31545749-99C9-43D7-8397-F895E42058C4</string>
17
+ <string>460ABE5C-0250-474D-9401-C01F8743C5A4</string>
18
+ </array>
19
+ <key>uuid</key>
20
+ <string>31DB3560-8F7C-40A8-B82D-BC7E020FFCF1</string>
21
+ </dict>
22
+ </plist>
@@ -0,0 +1,34 @@
1
+ PDoc
2
+ ====
3
+
4
+ PDoc is an inline comment parser and JavaScript documentation generator written in Ruby. It is designed for documenting [Prototype](http://prototypejs.org) and Prototype-based libraries.
5
+
6
+ PDoc uses [Treetop](http://treetop.rubyforge.org/), a Ruby-based DSL for text parsing and interpretation, and its own ActionView-inspired, ERB-based templating system for HTML generation. Other documentation generators (e.g., DocBook XML) are planned.
7
+
8
+ Unlike other inline-doc parsers, PDoc does not rely on the JavaScript source code at all; it only parses the comments. This approach, though slightly more verbose, is much better at generating consistent, reliable documentation, and avoids the headaches encountered when documenting highly dynamic languages.
9
+
10
+ ## Installation
11
+
12
+ PDoc depends on Rake, your choice of markdown parser, and treetop, all of which can be obtained through RubyGems:
13
+
14
+ gem install rake bluecloth treetop
15
+
16
+ ## Usage
17
+
18
+ For hints on how to run PDoc on the command line, consult the built-in Rake tasks (in `Rakefile`) and the `PDoc::Runner` class (in `lib/pdoc/runner.rb`).
19
+
20
+ ## How it works
21
+
22
+ The process of turning inline PDoc comments into a human-friendly document has two phases.
23
+
24
+ ### Parsing phase
25
+ In this phase, the source files are scanned for PDoc comments, then parsed with the Ruby files generated from the Treetop language grammar. The product of this phase is a tree full of specialized classes, all of which inherit from `Treetop::Runtime::SyntaxNode`.
26
+
27
+ The root of the tree is an instance of `Documentation::Doc`. It comprises one or more instances of `Documentation::Section`; which in turn comprise language elements like namespaces, classes, constants, etc., all of which have class representations.
28
+
29
+ ### Rendering phase
30
+ Next, PDoc asks a _generator_ how to translate this abstract tree into a hierarchical document. The default generator outputs organized HTML in a manner similar to [RDoc](http://rdoc.sourceforge.net/ "RDoc - Document Generator for Ruby Source")'s.
31
+
32
+ The HTML generator (`PDoc::Generators::Html`) has associated _templates_ (in the `templates` directory) that accept syntax nodes and echo their metadata onto the page using [ERB](http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/index.html "erb: Ruby Standard Library Documentation"). Templates are modular, so it's quite easy to apply a custom "skin" to one's documentation pages.
33
+
34
+ Furthermore, generators themselves are modular; PDoc can, theoretically, parse once and render to several different targets (HTML, [DocBook XML](http://www.docbook.org/ "DocBook.org"), CHM, PDF, even [ScriptDoc](http://www.scriptdoc.org/ "ScriptDoc.org: Dynamic Language Documentation").) We hope many such generators will exist in the future.
@@ -0,0 +1,46 @@
1
+ require 'rake'
2
+ require 'lib/pdoc'
3
+
4
+ desc "Builds the documentation"
5
+ task :build_doc do
6
+ PDoc.run({
7
+ :source_files => [File.join(File.dirname(__FILE__), "test", "fixtures", "ajax.js")],
8
+ :destination => OUTPUT_DIR,
9
+ :syntax_highlighter => :pygments,
10
+ :markdown_parser => :bluecloth,
11
+ :src_code_href => proc { |file, line|
12
+ "http://github.com/example/ex/#{file}##{line}"
13
+ },
14
+ :pretty_urls => false,
15
+ :bust_cache => true,
16
+ :name => 'Example JavaScript Framework',
17
+ :short_name => 'Ex',
18
+ :home_url => 'http://example.com',
19
+ :doc_url => 'http://example.com/api',
20
+ :version => "1.2.0",
21
+ :copyright_notice => 'This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.'
22
+ })
23
+ end
24
+
25
+ desc "Empties output directory"
26
+ task :remove_doc do
27
+ rm_rf Dir.glob(File.join(OUTPUT_DIR, "*"))
28
+ end
29
+
30
+ desc "Empties the output directory and builds the documentation."
31
+ task :doc => [:remove_doc, :build_doc]
32
+
33
+ desc "Runs all the unit tests."
34
+ task :test do
35
+ require 'rake/runtest'
36
+ Rake.run_tests '**/*_test.rb'
37
+ end
38
+
39
+ task :compile_parser do
40
+ require 'treetop'
41
+ compiler = Treetop::Compiler::GrammarCompiler.new
42
+ treetop_dir = File.expand_path(File.join(File.dirname(__FILE__), "lib", "pdoc", "parser", "treetop_files"))
43
+ Dir.glob(File.join(treetop_dir, "*.treetop")).each do |treetop_file_path|
44
+ compiler.compile(treetop_file_path)
45
+ end
46
+ end
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'oyster'
4
+ require File.dirname(__FILE__) + '/../lib/pdoc'
5
+
6
+ spec = Oyster.spec do
7
+ name "pdoc -- Inline comment parser and JavaScript documentation generator"
8
+ author "Tobie Langel <tobie.langel@gmail.com>"
9
+
10
+ synopsis <<-EOS
11
+ pdoc [-o OUTPUT_DIR] [-t TEMPLATE_DIR] SOURCE_FILES
12
+ pdoc [OPTIONS] -d SOURCE_DIRECTORY
13
+ EOS
14
+
15
+ string :directory,
16
+ :desc => "Directory to search for JavaScript files. Will take all *.js " +
17
+ "files from the given directory (including subdirectories) and use " +
18
+ "them to generate documentation. This option takes precedence over " +
19
+ "SOURCE_FILES."
20
+
21
+ string :output,
22
+ :desc => "Directory in which to dump output files",
23
+ :default => "pdoc"
24
+
25
+ string :templates,
26
+ :desc => "Directory containing template files"
27
+
28
+ subcommand :'copy-templates' do
29
+ synopsis <<-EOS
30
+ pdoc copy-templates TYPE DESTINATION
31
+ EOS
32
+
33
+ description <<-EOS
34
+ PDoc includes a set of default templates for each type of output generator.
35
+ This command lets you extract a set of these templates into a local directory
36
+ so you can tweak it to suit your needs. Be sure to specify your set of
37
+ templates next time you run pdoc.
38
+ EOS
39
+ end
40
+ end
41
+
42
+ begin; options = spec.parse
43
+ rescue Oyster::HelpRendered; exit
44
+ end
45
+
46
+ if command = options[:'copy-templates']
47
+ args = command[:unclaimed]
48
+ PDoc.copy_templates(args[0], File.expand_path(args[1]))
49
+ exit
50
+ end
51
+
52
+ files = (d = options[:directory]) ?
53
+ Dir["#{d}/**/*.js"].map(&File.method(:expand_path)) :
54
+ options[:unclaimed].dup
55
+
56
+ files << {:destination => options[:output], :templates => options[:templates]}
57
+ PDoc::Runner.new(*files).run
58
+
@@ -0,0 +1,4 @@
1
+ module PDoc
2
+ class PDocError < StandardError
3
+ end
4
+ end
@@ -0,0 +1,16 @@
1
+ module PDoc
2
+ module Generators
3
+ class AbstractGenerator
4
+ attr_reader :options, :root
5
+ def initialize(root, options = {})
6
+ @root = root
7
+ @options = options
8
+ end
9
+
10
+ # Creates a new directory with read, write and execute permission.
11
+ def mkdir(name)
12
+ Dir.mkdir(name, 0755)
13
+ end
14
+ end
15
+ end
16
+ end