bixbite 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. data/LICENSE +20 -0
  2. data/README.markdown +49 -0
  3. data/VERSION +1 -0
  4. data/bin/bixbite +73 -0
  5. data/lib/bixbite.rb +13 -0
  6. data/lib/bixbite/command.rb +14 -0
  7. data/lib/bixbite/create.rb +76 -0
  8. data/template/Rakefile +25 -0
  9. data/template/assets/bixbite/Rakefile.rb +297 -0
  10. data/template/assets/naturaldocs/NaturalDocs/Config/Languages.txt +286 -0
  11. data/template/assets/naturaldocs/NaturalDocs/Config/Topics.txt +382 -0
  12. data/template/assets/naturaldocs/NaturalDocs/Help/customizinglanguages.html +52 -0
  13. data/template/assets/naturaldocs/NaturalDocs/Help/customizingtopics.html +74 -0
  14. data/template/assets/naturaldocs/NaturalDocs/Help/documenting.html +58 -0
  15. data/template/assets/naturaldocs/NaturalDocs/Help/documenting/reference.html +146 -0
  16. data/template/assets/naturaldocs/NaturalDocs/Help/documenting/walkthrough.html +180 -0
  17. data/template/assets/naturaldocs/NaturalDocs/Help/example/Default.css +528 -0
  18. data/template/assets/naturaldocs/NaturalDocs/Help/example/NaturalDocs.js +204 -0
  19. data/template/assets/naturaldocs/NaturalDocs/Help/examples.css +90 -0
  20. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/background.png +0 -0
  21. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/leftside.png +0 -0
  22. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/logo.png +0 -0
  23. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbody.png +0 -0
  24. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbodybg.png +0 -0
  25. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overleftmargin.png +0 -0
  26. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenu.png +0 -0
  27. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenubg.png +0 -0
  28. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/rightside.png +0 -0
  29. data/template/assets/naturaldocs/NaturalDocs/Help/images/logo.gif +0 -0
  30. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/about.png +0 -0
  31. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/background.png +0 -0
  32. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomleft.png +0 -0
  33. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomright.png +0 -0
  34. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/community.png +0 -0
  35. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/customizing.png +0 -0
  36. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/using.png +0 -0
  37. data/template/assets/naturaldocs/NaturalDocs/Help/index.html +9 -0
  38. data/template/assets/naturaldocs/NaturalDocs/Help/javascript/BrowserStyles.js +77 -0
  39. data/template/assets/naturaldocs/NaturalDocs/Help/javascript/PNGHandling.js +72 -0
  40. data/template/assets/naturaldocs/NaturalDocs/Help/keywords.html +38 -0
  41. data/template/assets/naturaldocs/NaturalDocs/Help/languages.html +32 -0
  42. data/template/assets/naturaldocs/NaturalDocs/Help/menu.html +79 -0
  43. data/template/assets/naturaldocs/NaturalDocs/Help/output.html +84 -0
  44. data/template/assets/naturaldocs/NaturalDocs/Help/running.html +40 -0
  45. data/template/assets/naturaldocs/NaturalDocs/Help/styles.css +290 -0
  46. data/template/assets/naturaldocs/NaturalDocs/Help/styles.html +52 -0
  47. data/template/assets/naturaldocs/NaturalDocs/Help/troubleshooting.html +18 -0
  48. data/template/assets/naturaldocs/NaturalDocs/Info/CSSGuide.txt +947 -0
  49. data/template/assets/naturaldocs/NaturalDocs/Info/File Parsing.txt +83 -0
  50. data/template/assets/naturaldocs/NaturalDocs/Info/HTMLTestCases.pm +269 -0
  51. data/template/assets/naturaldocs/NaturalDocs/Info/Languages.txt +107 -0
  52. data/template/assets/naturaldocs/NaturalDocs/Info/NDMarkup.txt +91 -0
  53. data/template/assets/naturaldocs/NaturalDocs/Info/Symbol Management.txt +59 -0
  54. data/template/assets/naturaldocs/NaturalDocs/Info/images/Logo.png +0 -0
  55. data/template/assets/naturaldocs/NaturalDocs/JavaScript/NaturalDocs.js +836 -0
  56. data/template/assets/naturaldocs/NaturalDocs/License-GPL.txt +341 -0
  57. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/BinaryFile.pm +294 -0
  58. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder.pm +280 -0
  59. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/Base.pm +348 -0
  60. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/FramedHTML.pm +345 -0
  61. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTML.pm +398 -0
  62. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTMLBase.pm +3693 -0
  63. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy.pm +860 -0
  64. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/Class.pm +412 -0
  65. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/File.pm +157 -0
  66. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ConfigFile.pm +497 -0
  67. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Constants.pm +165 -0
  68. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/DefineMembers.pm +100 -0
  69. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Error.pm +305 -0
  70. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/File.pm +540 -0
  71. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable.pm +383 -0
  72. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/Reference.pm +44 -0
  73. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/String.pm +110 -0
  74. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages.pm +1475 -0
  75. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/ActionScript.pm +1473 -0
  76. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Ada.pm +38 -0
  77. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced.pm +828 -0
  78. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/Scope.pm +95 -0
  79. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/ScopeChange.pm +70 -0
  80. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Base.pm +832 -0
  81. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/CSharp.pm +1484 -0
  82. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/PLSQL.pm +319 -0
  83. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Pascal.pm +143 -0
  84. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Perl.pm +1370 -0
  85. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype.pm +92 -0
  86. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype/Parameter.pm +87 -0
  87. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Simple.pm +503 -0
  88. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Tcl.pm +219 -0
  89. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu.pm +3406 -0
  90. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu/Entry.pm +201 -0
  91. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/NDMarkup.pm +76 -0
  92. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser.pm +1331 -0
  93. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/JavaDoc.pm +464 -0
  94. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/Native.pm +1060 -0
  95. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/ParsedTopic.pm +253 -0
  96. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project.pm +1402 -0
  97. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/ImageFile.pm +160 -0
  98. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/SourceFile.pm +113 -0
  99. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ReferenceString.pm +334 -0
  100. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings.pm +1418 -0
  101. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings/BuildTarget.pm +66 -0
  102. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB.pm +678 -0
  103. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Extension.pm +84 -0
  104. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/File.pm +129 -0
  105. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Item.pm +201 -0
  106. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/ItemDefinition.pm +45 -0
  107. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/WatchedFileDefinitions.pm +159 -0
  108. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/StatusMessage.pm +102 -0
  109. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolString.pm +212 -0
  110. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable.pm +1984 -0
  111. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/File.pm +186 -0
  112. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/IndexElement.pm +522 -0
  113. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Reference.pm +273 -0
  114. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/ReferenceTarget.pm +97 -0
  115. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Symbol.pm +428 -0
  116. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/SymbolDefinition.pm +96 -0
  117. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics.pm +1319 -0
  118. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics/Type.pm +151 -0
  119. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Version.pm +384 -0
  120. data/template/assets/naturaldocs/NaturalDocs/NaturalDocs +400 -0
  121. data/template/assets/naturaldocs/NaturalDocs/NaturalDocs.bat +17 -0
  122. data/template/assets/naturaldocs/NaturalDocs/Styles/Default.css +767 -0
  123. data/template/assets/naturaldocs/NaturalDocs/Styles/Roman.css +765 -0
  124. data/template/assets/naturaldocs/NaturalDocs/Styles/Small.css +763 -0
  125. data/template/assets/utilities/pngout +0 -0
  126. data/template/deploy/public_html/.htaccess +0 -0
  127. data/template/documentation/js/.htaccess +0 -0
  128. data/template/src/html/.htaccess +76 -0
  129. data/template/src/html/css/cmn/global.css +96 -0
  130. data/template/src/html/css/cmn/ie.css +15 -0
  131. data/template/src/html/css/cmn/ie6.css +15 -0
  132. data/template/src/html/images/cmn/.htaccess +0 -0
  133. data/template/src/html/images/tmp/.htaccess +0 -0
  134. data/template/src/html/includes/debug.inc +5 -0
  135. data/template/src/html/includes/footer.inc +52 -0
  136. data/template/src/html/includes/header.inc +61 -0
  137. data/template/src/html/includes/html.inc +3 -0
  138. data/template/src/html/includes/namespace.inc +19 -0
  139. data/template/src/html/includes/page.inc +151 -0
  140. data/template/src/html/index.html +35 -0
  141. data/template/src/html/js/cmn/bootstrap.js +74 -0
  142. data/template/src/html/js/cmn/global.js +142 -0
  143. data/template/src/html/js/cmn/lib/LAB.js +348 -0
  144. data/template/src/html/min/.htaccess +4 -0
  145. data/template/src/html/min/MinifyCLI.php +19 -0
  146. data/template/src/html/min/README.txt +132 -0
  147. data/template/src/html/min/builder/_index.js +242 -0
  148. data/template/src/html/min/builder/bm.js +36 -0
  149. data/template/src/html/min/builder/index.php +182 -0
  150. data/template/src/html/min/builder/ocCheck.php +36 -0
  151. data/template/src/html/min/builder/rewriteTest.js +1 -0
  152. data/template/src/html/min/config.php +187 -0
  153. data/template/src/html/min/groupsConfig.php +34 -0
  154. data/template/src/html/min/index.php +66 -0
  155. data/template/src/html/min/lib/FirePHP.php +1370 -0
  156. data/template/src/html/min/lib/HTTP/ConditionalGet.php +348 -0
  157. data/template/src/html/min/lib/HTTP/Encoder.php +326 -0
  158. data/template/src/html/min/lib/JSMin.php +314 -0
  159. data/template/src/html/min/lib/JSMinPlus.php +1872 -0
  160. data/template/src/html/min/lib/Minify.php +532 -0
  161. data/template/src/html/min/lib/Minify/Build.php +103 -0
  162. data/template/src/html/min/lib/Minify/CSS.php +83 -0
  163. data/template/src/html/min/lib/Minify/CSS/Compressor.php +250 -0
  164. data/template/src/html/min/lib/Minify/CSS/UriRewriter.php +270 -0
  165. data/template/src/html/min/lib/Minify/Cache/APC.php +130 -0
  166. data/template/src/html/min/lib/Minify/Cache/File.php +125 -0
  167. data/template/src/html/min/lib/Minify/Cache/Memcache.php +137 -0
  168. data/template/src/html/min/lib/Minify/ClosureCompiler.php +85 -0
  169. data/template/src/html/min/lib/Minify/CommentPreserver.php +90 -0
  170. data/template/src/html/min/lib/Minify/Controller/Base.php +202 -0
  171. data/template/src/html/min/lib/Minify/Controller/Files.php +78 -0
  172. data/template/src/html/min/lib/Minify/Controller/Groups.php +94 -0
  173. data/template/src/html/min/lib/Minify/Controller/MinApp.php +132 -0
  174. data/template/src/html/min/lib/Minify/Controller/Page.php +82 -0
  175. data/template/src/html/min/lib/Minify/Controller/Version1.php +118 -0
  176. data/template/src/html/min/lib/Minify/HTML.php +245 -0
  177. data/template/src/html/min/lib/Minify/ImportProcessor.php +157 -0
  178. data/template/src/html/min/lib/Minify/Lines.php +131 -0
  179. data/template/src/html/min/lib/Minify/Logger.php +45 -0
  180. data/template/src/html/min/lib/Minify/Packer.php +37 -0
  181. data/template/src/html/min/lib/Minify/Source.php +187 -0
  182. data/template/src/html/min/lib/Minify/YUICompressor.php +139 -0
  183. data/template/src/html/min/lib/Solar/Dir.php +199 -0
  184. data/template/src/html/min/lib/closure-compiler.jar +0 -0
  185. data/template/src/html/min/lib/yuicompressor-2.4.2.jar +0 -0
  186. data/template/src/html/min/utils.php +90 -0
  187. data/template/src/templates/css/template.css +7 -0
  188. data/template/src/templates/js/template.js +72 -0
  189. data/template/src/templates/template.html +18 -0
  190. data/template/src/yaml/config.yml +46 -0
  191. data/template/src/yaml/deploy.yml +35 -0
  192. data/test/bixbite_test.rb +7 -0
  193. data/test/test_helper.rb +10 -0
  194. metadata +278 -0
@@ -0,0 +1,165 @@
1
+ ###############################################################################
2
+ #
3
+ # Package: NaturalDocs::Constants
4
+ #
5
+ ###############################################################################
6
+ #
7
+ # Constants that are used throughout the script. All are exported by default.
8
+ #
9
+ ###############################################################################
10
+
11
+ # This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
12
+ # Natural Docs is licensed under the GPL
13
+
14
+ use strict;
15
+ use integer;
16
+
17
+ package NaturalDocs::Constants;
18
+
19
+ use vars qw(@EXPORT @ISA);
20
+ require Exporter;
21
+ @ISA = qw(Exporter);
22
+
23
+ @EXPORT = ('MENU_TITLE', 'MENU_SUBTITLE', 'MENU_FILE', 'MENU_GROUP', 'MENU_TEXT', 'MENU_LINK', 'MENU_FOOTER',
24
+ 'MENU_INDEX', 'MENU_FORMAT', 'MENU_ENDOFORIGINAL', 'MENU_DATA',
25
+
26
+ 'MENU_FILE_NOAUTOTITLE', 'MENU_GROUP_UPDATETITLES', 'MENU_GROUP_UPDATESTRUCTURE',
27
+ 'MENU_GROUP_UPDATEORDER', 'MENU_GROUP_HASENDOFORIGINAL',
28
+ 'MENU_GROUP_UNSORTED', 'MENU_GROUP_FILESSORTED',
29
+ 'MENU_GROUP_FILESANDGROUPSSORTED', 'MENU_GROUP_EVERYTHINGSORTED',
30
+ 'MENU_GROUP_ISINDEXGROUP',
31
+
32
+ 'FILE_NEW', 'FILE_CHANGED', 'FILE_SAME', 'FILE_DOESNTEXIST');
33
+
34
+ #
35
+ # Topic: Assumptions
36
+ #
37
+ # - No constant here will ever be zero.
38
+ # - All constants are exported by default.
39
+ #
40
+
41
+
42
+ ###############################################################################
43
+ # Group: Virtual Types
44
+ # These are only groups of constants, but should be treated like typedefs or enums. Each one represents a distinct type and
45
+ # their values should only be one of their constants or undef.
46
+
47
+
48
+ #
49
+ # Constants: MenuEntryType
50
+ #
51
+ # The types of entries that can appear in the menu.
52
+ #
53
+ # MENU_TITLE - The title of the menu.
54
+ # MENU_SUBTITLE - The sub-title of the menu.
55
+ # MENU_FILE - A source file, relative to the source directory.
56
+ # MENU_GROUP - A group.
57
+ # MENU_TEXT - Arbitrary text.
58
+ # MENU_LINK - A web link.
59
+ # MENU_FOOTER - Footer text.
60
+ # MENU_INDEX - An index.
61
+ # MENU_FORMAT - The version of Natural Docs the menu file was generated with.
62
+ # MENU_ENDOFORIGINAL - A dummy entry that marks where the original group content ends. This is used when automatically
63
+ # changing the groups so that the alphabetization or lack thereof can be detected without being
64
+ # affected by new entries tacked on to the end.
65
+ # MENU_DATA - Data not meant for user editing.
66
+ #
67
+ # Dependency:
68
+ #
69
+ # <PreviousMenuState.nd> depends on these values all being able to fit into a UInt8, i.e. <= 255.
70
+ #
71
+ use constant MENU_TITLE => 1;
72
+ use constant MENU_SUBTITLE => 2;
73
+ use constant MENU_FILE => 3;
74
+ use constant MENU_GROUP => 4;
75
+ use constant MENU_TEXT => 5;
76
+ use constant MENU_LINK => 6;
77
+ use constant MENU_FOOTER => 7;
78
+ use constant MENU_INDEX => 8;
79
+ use constant MENU_FORMAT => 9;
80
+ use constant MENU_ENDOFORIGINAL => 10;
81
+ use constant MENU_DATA => 11;
82
+
83
+
84
+ #
85
+ # Constants: FileStatus
86
+ #
87
+ # What happened to a file since Natural Docs' last execution.
88
+ #
89
+ # FILE_NEW - The file has been added since the last run.
90
+ # FILE_CHANGED - The file has been modified since the last run.
91
+ # FILE_SAME - The file hasn't been modified since the last run.
92
+ # FILE_DOESNTEXIST - The file doesn't exist, or was deleted.
93
+ #
94
+ use constant FILE_NEW => 1;
95
+ use constant FILE_CHANGED => 2;
96
+ use constant FILE_SAME => 3;
97
+ use constant FILE_DOESNTEXIST => 4;
98
+
99
+
100
+
101
+ ###############################################################################
102
+ # Group: Flags
103
+ # These constants can be combined with each other.
104
+
105
+
106
+ #
107
+ # Constants: Menu Entry Flags
108
+ #
109
+ # The various flags that can apply to a menu entry. You cannot mix flags of different types, since they may overlap.
110
+ #
111
+ # File Flags:
112
+ #
113
+ # MENU_FILE_NOAUTOTITLE - Whether the file is auto-titled or not.
114
+ #
115
+ # Group Flags:
116
+ #
117
+ # MENU_GROUP_UPDATETITLES - The group should have its auto-titles regenerated.
118
+ # MENU_GROUP_UPDATESTRUCTURE - The group should be checked for structural changes, such as being removed or being
119
+ # split into subgroups.
120
+ # MENU_GROUP_UPDATEORDER - The group should be resorted.
121
+ #
122
+ # MENU_GROUP_HASENDOFORIGINAL - Whether the group contains a dummy <MENU_ENDOFORIGINAL> entry.
123
+ # MENU_GROUP_ISINDEXGROUP - Whether the group is used primarily for <MENU_INDEX> entries. <MENU_TEXT> entries
124
+ # are tolerated.
125
+ #
126
+ # MENU_GROUP_UNSORTED - The group's contents are not sorted.
127
+ # MENU_GROUP_FILESSORTED - The group's files are sorted alphabetically.
128
+ # MENU_GROUP_FILESANDGROUPSSORTED - The group's files and sub-groups are sorted alphabetically.
129
+ # MENU_GROUP_EVERYTHINGSORTED - All entries in the group are sorted alphabetically.
130
+ #
131
+ use constant MENU_FILE_NOAUTOTITLE => 0x0001;
132
+
133
+ use constant MENU_GROUP_UPDATETITLES => 0x0001;
134
+ use constant MENU_GROUP_UPDATESTRUCTURE => 0x0002;
135
+ use constant MENU_GROUP_UPDATEORDER => 0x0004;
136
+ use constant MENU_GROUP_HASENDOFORIGINAL => 0x0008;
137
+
138
+ # This could really be a two-bit field instead of four flags, but it's not worth the effort since it's only used internally.
139
+ use constant MENU_GROUP_UNSORTED => 0x0010;
140
+ use constant MENU_GROUP_FILESSORTED => 0x0020;
141
+ use constant MENU_GROUP_FILESANDGROUPSSORTED => 0x0040;
142
+ use constant MENU_GROUP_EVERYTHINGSORTED => 0x0080;
143
+
144
+ use constant MENU_GROUP_ISINDEXGROUP => 0x0100;
145
+
146
+
147
+
148
+
149
+ ###############################################################################
150
+ # Group: Support Functions
151
+
152
+
153
+ #
154
+ # Function: IsClassHierarchyReference
155
+ # Returns whether the passed <ReferenceType> belongs to <NaturalDocs::ClassHierarchy>.
156
+ #
157
+ sub IsClassHierarchyReference #(reference)
158
+ {
159
+ my ($self, $reference) = @_;
160
+ return ($reference == ::REFERENCE_CH_CLASS() || $reference == ::REFERENCE_CH_PARENT());
161
+ };
162
+
163
+
164
+
165
+ 1;
@@ -0,0 +1,100 @@
1
+ ###############################################################################
2
+ #
3
+ # Package: NaturalDocs::DefineMembers
4
+ #
5
+ ###############################################################################
6
+ #
7
+ # A custom Perl pragma to define member constants and accessors for use in Natural Docs objects while supporting inheritance.
8
+ #
9
+ # Each member will be defined as a numeric constant which should be used as that variable's index into the object arrayref.
10
+ # They will be assigned sequentially from zero, and take into account any members defined this way in parent classes. Note
11
+ # that you can *not* use multiple inheritance with this method.
12
+ #
13
+ # If a parameter ends in parenthesis, it will be generated as an accessor for the previous member. If it also starts with "Set",
14
+ # the accessor will accept a single parameter to replace the value with. If it's followed with "duparrayref", it will assume the
15
+ # parameter is either an arrayref or undef, and if the former, will duplicate it to set the value.
16
+ #
17
+ # Example:
18
+ #
19
+ # > package MyPackage;
20
+ # >
21
+ # > use NaturalDocs::DefineMembers 'VAR_A', 'VarA()', 'SetVarA()',
22
+ # > 'VAR_B', 'VarB()',
23
+ # > 'VAR_C',
24
+ # > 'VAR_D', 'VarD()', 'SetVarD() duparrayref';
25
+ # >
26
+ # > sub SetC #(C)
27
+ # > {
28
+ # > my ($self, $c) = @_;
29
+ # > $self->[VAR_C] = $c;
30
+ # > };
31
+ #
32
+ ###############################################################################
33
+
34
+ # This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
35
+ # Natural Docs is licensed under the GPL
36
+
37
+
38
+ package NaturalDocs::DefineMembers;
39
+
40
+ sub import #(member, member, ...)
41
+ {
42
+ my ($self, @parameters) = @_;
43
+ my $package = caller();
44
+
45
+ no strict 'refs';
46
+ my $parent = ${$package . '::ISA'}[0];
47
+ use strict 'refs';
48
+
49
+ my $memberConstant = 0;
50
+ my $lastMemberName;
51
+
52
+ if (defined $parent && $parent->can('END_OF_MEMBERS'))
53
+ { $memberConstant = $parent->END_OF_MEMBERS(); };
54
+
55
+ my $code = '{ package ' . $package . ";\n";
56
+
57
+ foreach my $parameter (@parameters)
58
+ {
59
+ if ($parameter =~ /^(.+)\(\) *(duparrayref)?$/i)
60
+ {
61
+ my ($functionName, $pragma) = ($1, lc($2));
62
+
63
+ if ($functionName =~ /^Set/)
64
+ {
65
+ if ($pragma eq 'duparrayref')
66
+ {
67
+ $code .=
68
+ 'sub ' . $functionName . '
69
+ {
70
+ if (defined $_[1])
71
+ { $_[0]->[' . $lastMemberName . '] = [ @{$_[1]} ]; }
72
+ else
73
+ { $_[0]->[' . $lastMemberName . '] = undef; };
74
+ };' . "\n";
75
+ }
76
+ else
77
+ {
78
+ $code .= 'sub ' . $functionName . ' { $_[0]->[' . $lastMemberName . '] = $_[1]; };' . "\n";
79
+ };
80
+ }
81
+ else
82
+ {
83
+ $code .= 'sub ' . $functionName . ' { return $_[0]->[' . $lastMemberName . ']; };' . "\n";
84
+ };
85
+ }
86
+ else
87
+ {
88
+ $code .= 'use constant ' . $parameter . ' => ' . $memberConstant . ";\n";
89
+ $memberConstant++;
90
+ $lastMemberName = $parameter;
91
+ };
92
+ };
93
+
94
+ $code .= 'use constant END_OF_MEMBERS => ' . $memberConstant . ";\n";
95
+ $code .= '};';
96
+
97
+ eval $code;
98
+ };
99
+
100
+ 1;
@@ -0,0 +1,305 @@
1
+ ###############################################################################
2
+ #
3
+ # Package: NaturalDocs::Error
4
+ #
5
+ ###############################################################################
6
+ #
7
+ # Manages all aspects of error handling in Natural Docs.
8
+ #
9
+ ###############################################################################
10
+
11
+ # This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
12
+ # Natural Docs is licensed under the GPL
13
+
14
+ use strict;
15
+ use integer;
16
+
17
+ $SIG{'__DIE__'} = \&NaturalDocs::Error::CatchDeath;
18
+
19
+
20
+ package NaturalDocs::Error;
21
+
22
+
23
+ ###############################################################################
24
+ # Group: Variables
25
+
26
+
27
+ #
28
+ # handle: FH_CRASHREPORT
29
+ # The filehandle used for generating crash reports.
30
+ #
31
+
32
+
33
+ #
34
+ # var: stackTrace
35
+ # The stack trace generated by <CatchDeath()>.
36
+ #
37
+ my $stackTrace;
38
+
39
+
40
+ #
41
+ # var: softDeath
42
+ # Whether the program exited using <SoftDeath()>.
43
+ #
44
+ my $softDeath;
45
+
46
+
47
+ #
48
+ # var: currentAction
49
+ # What Natural Docs was doing when it crashed. This stores strings generated by functions like <OnStartParsing()>.
50
+ #
51
+ my $currentAction;
52
+
53
+
54
+ ###############################################################################
55
+ # Group: Functions
56
+
57
+
58
+ #
59
+ # Function: SoftDeath
60
+ #
61
+ # Generates a "soft" death, which means the program exits like with Perl's die(), but no crash report will be generated.
62
+ #
63
+ # Parameter:
64
+ #
65
+ # message - The error message to die with.
66
+ #
67
+ sub SoftDeath #(message)
68
+ {
69
+ my ($self, $message) = @_;
70
+
71
+ $softDeath = 1;
72
+ if ($message !~ /\n$/)
73
+ { $message .= "\n"; };
74
+
75
+ die $message;
76
+ };
77
+
78
+
79
+ #
80
+ # Function: OnStartParsing
81
+ #
82
+ # Called whenever <NaturalDocs::Parser> starts parsing a source file.
83
+ #
84
+ sub OnStartParsing #(FileName file)
85
+ {
86
+ my ($self, $file) = @_;
87
+ $currentAction = 'Parsing ' . $file;
88
+ };
89
+
90
+
91
+ #
92
+ # Function: OnEndParsing
93
+ #
94
+ # Called whenever <NaturalDocs::Parser> is done parsing a source file.
95
+ #
96
+ sub OnEndParsing #(FileName file)
97
+ {
98
+ my ($self, $file) = @_;
99
+ $currentAction = undef;
100
+ };
101
+
102
+
103
+ #
104
+ # Function: OnStartBuilding
105
+ #
106
+ # Called whenever <NaturalDocs::Builder> starts building a source file.
107
+ #
108
+ sub OnStartBuilding #(FileName file)
109
+ {
110
+ my ($self, $file) = @_;
111
+ $currentAction = 'Building ' . $file;
112
+ };
113
+
114
+
115
+ #
116
+ # Function: OnEndBuilding
117
+ #
118
+ # Called whenever <NaturalDocs::Builder> is done building a source file.
119
+ #
120
+ sub OnEndBuilding #(FileName file)
121
+ {
122
+ my ($self, $file) = @_;
123
+ $currentAction = undef;
124
+ };
125
+
126
+
127
+ #
128
+ # Function: HandleDeath
129
+ #
130
+ # Should be called whenever Natural Docs dies out of execution.
131
+ #
132
+ sub HandleDeath
133
+ {
134
+ my $self = shift;
135
+
136
+ my $reason = $::EVAL_ERROR;
137
+ $reason =~ s/[\n\r]+$//;
138
+
139
+ my $errorMessage =
140
+ "\n"
141
+ . "Natural Docs encountered the following error and was stopped:\n"
142
+ . "\n"
143
+ . " " . $reason . "\n"
144
+ . "\n"
145
+
146
+ . "You can get help at the following web site:\n"
147
+ . "\n"
148
+ . " " . NaturalDocs::Settings->AppURL() . "\n"
149
+ . "\n";
150
+
151
+ if (!$softDeath)
152
+ {
153
+ my $crashReport = $self->GenerateCrashReport();
154
+
155
+ if ($crashReport)
156
+ {
157
+ $errorMessage .=
158
+ "If sending an error report, please include the information found in the\n"
159
+ . "following file:\n"
160
+ . "\n"
161
+ . " " . $crashReport . "\n"
162
+ . "\n";
163
+ }
164
+ else
165
+ {
166
+ $errorMessage .=
167
+ "If sending an error report, please include the following information:\n"
168
+ . "\n"
169
+ . " Natural Docs version: " . NaturalDocs::Settings->TextAppVersion() . "\n"
170
+ . " Perl version: " . $self->PerlVersion() . " on " . $::OSNAME . "\n"
171
+ . "\n";
172
+ };
173
+ };
174
+
175
+ die $errorMessage;
176
+ };
177
+
178
+
179
+ ###############################################################################
180
+ # Group: Support Functions
181
+
182
+
183
+ #
184
+ # Function: PerlVersion
185
+ # Returns the current Perl version as a string.
186
+ #
187
+ sub PerlVersion
188
+ {
189
+ my $self = shift;
190
+
191
+ my $perlVersion;
192
+
193
+ if ($^V)
194
+ { $perlVersion = sprintf('%vd', $^V); }
195
+ if (!$perlVersion || substr($perlVersion, 0, 1) eq '%')
196
+ { $perlVersion = $]; };
197
+
198
+ return $perlVersion;
199
+ };
200
+
201
+
202
+ #
203
+ # Function: GenerateCrashReport
204
+ #
205
+ # Generates a report and returns the <FileName> it's located at. Returns undef if it could not generate one.
206
+ #
207
+ sub GenerateCrashReport
208
+ {
209
+ my $self = shift;
210
+
211
+ my $errorMessage = $::EVAL_ERROR;
212
+ $errorMessage =~ s/[\r\n]+$//;
213
+
214
+ my $reportDirectory = NaturalDocs::Settings->ProjectDirectory();
215
+
216
+ if (!$reportDirectory || !-d $reportDirectory)
217
+ { return undef; };
218
+
219
+ my $file = NaturalDocs::File->JoinPaths($reportDirectory, 'LastCrash.txt');
220
+
221
+ open(FH_CRASHREPORT, '>' . $file) or return undef;
222
+
223
+ print FH_CRASHREPORT
224
+ 'Crash Message:' . "\n\n"
225
+ . ' ' . $errorMessage . "\n\n";
226
+
227
+ if ($currentAction)
228
+ {
229
+ print FH_CRASHREPORT
230
+ 'Current Action:' . "\n\n"
231
+ . ' ' . $currentAction . "\n\n";
232
+ };
233
+
234
+ print FH_CRASHREPORT
235
+ 'Natural Docs version ' . NaturalDocs::Settings->TextAppVersion() . "\n"
236
+ . 'Perl version ' . $self->PerlVersion . ' on ' . $::OSNAME . "\n\n"
237
+ . 'Command Line:' . "\n\n"
238
+ . ' ' . join(' ', @ARGV) . "\n\n";
239
+
240
+ if ($stackTrace)
241
+ {
242
+ print FH_CRASHREPORT
243
+ 'Stack Trace:' . "\n\n"
244
+ . $stackTrace;
245
+ }
246
+ else
247
+ {
248
+ print FH_CRASHREPORT
249
+ 'Stack Trace not available.' . "\n\n";
250
+ };
251
+
252
+ close(FH_CRASHREPORT);
253
+ return $file;
254
+ };
255
+
256
+
257
+ ###############################################################################
258
+ # Group: Signal Handlers
259
+
260
+
261
+ #
262
+ # Function: CatchDeath
263
+ #
264
+ # Catches Perl die calls.
265
+ #
266
+ # *IMPORTANT:* This function is a signal handler and should not be called manually. Also, because of this, it does not have
267
+ # a $self parameter.
268
+ #
269
+ # Parameters:
270
+ #
271
+ # message - The error message to die with.
272
+ #
273
+ sub CatchDeath #(message)
274
+ {
275
+ # No $self because it's a signal handler.
276
+ my $message = shift;
277
+
278
+ if (!$NaturalDocs::Error::softDeath)
279
+ {
280
+ my $i = 0;
281
+ my ($lastPackage, $lastFile, $lastLine, $lastFunction);
282
+
283
+ while (my ($package, $file, $line, $function) = caller($i))
284
+ {
285
+ if ($i != 0)
286
+ { $stackTrace .= ', called from' . "\n"; };
287
+
288
+ $stackTrace .= ' ' . $function;
289
+
290
+ if (defined $lastLine)
291
+ {
292
+ $stackTrace .= ', line ' . $lastLine;
293
+
294
+ if ($function !~ /^NaturalDocs::/)
295
+ { $stackTrace .= ' of ' . $lastFile; };
296
+ };
297
+
298
+ ($lastPackage, $lastFile, $lastLine, $lastFunction) = ($package, $file, $line, $function);
299
+ $i++;
300
+ };
301
+ };
302
+ };
303
+
304
+
305
+ 1;