bixbite 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +20 -0
- data/README.markdown +49 -0
- data/VERSION +1 -0
- data/bin/bixbite +73 -0
- data/lib/bixbite.rb +13 -0
- data/lib/bixbite/command.rb +14 -0
- data/lib/bixbite/create.rb +76 -0
- data/template/Rakefile +25 -0
- data/template/assets/bixbite/Rakefile.rb +297 -0
- data/template/assets/naturaldocs/NaturalDocs/Config/Languages.txt +286 -0
- data/template/assets/naturaldocs/NaturalDocs/Config/Topics.txt +382 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/customizinglanguages.html +52 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/customizingtopics.html +74 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/documenting.html +58 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/documenting/reference.html +146 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/documenting/walkthrough.html +180 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/example/Default.css +528 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/example/NaturalDocs.js +204 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/examples.css +90 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/background.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/leftside.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/logo.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbody.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbodybg.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overleftmargin.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenu.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenubg.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/rightside.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/logo.gif +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/about.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/background.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomleft.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomright.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/community.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/customizing.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/using.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/index.html +9 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/javascript/BrowserStyles.js +77 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/javascript/PNGHandling.js +72 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/keywords.html +38 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/languages.html +32 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/menu.html +79 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/output.html +84 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/running.html +40 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/styles.css +290 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/styles.html +52 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/troubleshooting.html +18 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/CSSGuide.txt +947 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/File Parsing.txt +83 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/HTMLTestCases.pm +269 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/Languages.txt +107 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/NDMarkup.txt +91 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/Symbol Management.txt +59 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/images/Logo.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/JavaScript/NaturalDocs.js +836 -0
- data/template/assets/naturaldocs/NaturalDocs/License-GPL.txt +341 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/BinaryFile.pm +294 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder.pm +280 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/Base.pm +348 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/FramedHTML.pm +345 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTML.pm +398 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTMLBase.pm +3693 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy.pm +860 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/Class.pm +412 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/File.pm +157 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ConfigFile.pm +497 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Constants.pm +165 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/DefineMembers.pm +100 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Error.pm +305 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/File.pm +540 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable.pm +383 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/Reference.pm +44 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/String.pm +110 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages.pm +1475 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/ActionScript.pm +1473 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Ada.pm +38 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced.pm +828 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/Scope.pm +95 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/ScopeChange.pm +70 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Base.pm +832 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/CSharp.pm +1484 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/PLSQL.pm +319 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Pascal.pm +143 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Perl.pm +1370 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype.pm +92 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype/Parameter.pm +87 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Simple.pm +503 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Tcl.pm +219 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu.pm +3406 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu/Entry.pm +201 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/NDMarkup.pm +76 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser.pm +1331 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/JavaDoc.pm +464 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/Native.pm +1060 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/ParsedTopic.pm +253 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project.pm +1402 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/ImageFile.pm +160 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/SourceFile.pm +113 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ReferenceString.pm +334 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings.pm +1418 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings/BuildTarget.pm +66 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB.pm +678 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Extension.pm +84 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/File.pm +129 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Item.pm +201 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/ItemDefinition.pm +45 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/WatchedFileDefinitions.pm +159 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/StatusMessage.pm +102 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolString.pm +212 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable.pm +1984 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/File.pm +186 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/IndexElement.pm +522 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Reference.pm +273 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/ReferenceTarget.pm +97 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Symbol.pm +428 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/SymbolDefinition.pm +96 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics.pm +1319 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics/Type.pm +151 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Version.pm +384 -0
- data/template/assets/naturaldocs/NaturalDocs/NaturalDocs +400 -0
- data/template/assets/naturaldocs/NaturalDocs/NaturalDocs.bat +17 -0
- data/template/assets/naturaldocs/NaturalDocs/Styles/Default.css +767 -0
- data/template/assets/naturaldocs/NaturalDocs/Styles/Roman.css +765 -0
- data/template/assets/naturaldocs/NaturalDocs/Styles/Small.css +763 -0
- data/template/assets/utilities/pngout +0 -0
- data/template/deploy/public_html/.htaccess +0 -0
- data/template/documentation/js/.htaccess +0 -0
- data/template/src/html/.htaccess +76 -0
- data/template/src/html/css/cmn/global.css +96 -0
- data/template/src/html/css/cmn/ie.css +15 -0
- data/template/src/html/css/cmn/ie6.css +15 -0
- data/template/src/html/images/cmn/.htaccess +0 -0
- data/template/src/html/images/tmp/.htaccess +0 -0
- data/template/src/html/includes/debug.inc +5 -0
- data/template/src/html/includes/footer.inc +52 -0
- data/template/src/html/includes/header.inc +61 -0
- data/template/src/html/includes/html.inc +3 -0
- data/template/src/html/includes/namespace.inc +19 -0
- data/template/src/html/includes/page.inc +151 -0
- data/template/src/html/index.html +35 -0
- data/template/src/html/js/cmn/bootstrap.js +74 -0
- data/template/src/html/js/cmn/global.js +142 -0
- data/template/src/html/js/cmn/lib/LAB.js +348 -0
- data/template/src/html/min/.htaccess +4 -0
- data/template/src/html/min/MinifyCLI.php +19 -0
- data/template/src/html/min/README.txt +132 -0
- data/template/src/html/min/builder/_index.js +242 -0
- data/template/src/html/min/builder/bm.js +36 -0
- data/template/src/html/min/builder/index.php +182 -0
- data/template/src/html/min/builder/ocCheck.php +36 -0
- data/template/src/html/min/builder/rewriteTest.js +1 -0
- data/template/src/html/min/config.php +187 -0
- data/template/src/html/min/groupsConfig.php +34 -0
- data/template/src/html/min/index.php +66 -0
- data/template/src/html/min/lib/FirePHP.php +1370 -0
- data/template/src/html/min/lib/HTTP/ConditionalGet.php +348 -0
- data/template/src/html/min/lib/HTTP/Encoder.php +326 -0
- data/template/src/html/min/lib/JSMin.php +314 -0
- data/template/src/html/min/lib/JSMinPlus.php +1872 -0
- data/template/src/html/min/lib/Minify.php +532 -0
- data/template/src/html/min/lib/Minify/Build.php +103 -0
- data/template/src/html/min/lib/Minify/CSS.php +83 -0
- data/template/src/html/min/lib/Minify/CSS/Compressor.php +250 -0
- data/template/src/html/min/lib/Minify/CSS/UriRewriter.php +270 -0
- data/template/src/html/min/lib/Minify/Cache/APC.php +130 -0
- data/template/src/html/min/lib/Minify/Cache/File.php +125 -0
- data/template/src/html/min/lib/Minify/Cache/Memcache.php +137 -0
- data/template/src/html/min/lib/Minify/ClosureCompiler.php +85 -0
- data/template/src/html/min/lib/Minify/CommentPreserver.php +90 -0
- data/template/src/html/min/lib/Minify/Controller/Base.php +202 -0
- data/template/src/html/min/lib/Minify/Controller/Files.php +78 -0
- data/template/src/html/min/lib/Minify/Controller/Groups.php +94 -0
- data/template/src/html/min/lib/Minify/Controller/MinApp.php +132 -0
- data/template/src/html/min/lib/Minify/Controller/Page.php +82 -0
- data/template/src/html/min/lib/Minify/Controller/Version1.php +118 -0
- data/template/src/html/min/lib/Minify/HTML.php +245 -0
- data/template/src/html/min/lib/Minify/ImportProcessor.php +157 -0
- data/template/src/html/min/lib/Minify/Lines.php +131 -0
- data/template/src/html/min/lib/Minify/Logger.php +45 -0
- data/template/src/html/min/lib/Minify/Packer.php +37 -0
- data/template/src/html/min/lib/Minify/Source.php +187 -0
- data/template/src/html/min/lib/Minify/YUICompressor.php +139 -0
- data/template/src/html/min/lib/Solar/Dir.php +199 -0
- data/template/src/html/min/lib/closure-compiler.jar +0 -0
- data/template/src/html/min/lib/yuicompressor-2.4.2.jar +0 -0
- data/template/src/html/min/utils.php +90 -0
- data/template/src/templates/css/template.css +7 -0
- data/template/src/templates/js/template.js +72 -0
- data/template/src/templates/template.html +18 -0
- data/template/src/yaml/config.yml +46 -0
- data/template/src/yaml/deploy.yml +35 -0
- data/test/bixbite_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- metadata +278 -0
@@ -0,0 +1,84 @@
|
|
1
|
+
###############################################################################
|
2
|
+
#
|
3
|
+
# Package: NaturalDocs::SourceDB::Extension
|
4
|
+
#
|
5
|
+
###############################################################################
|
6
|
+
#
|
7
|
+
# A base package for all <SourceDB> extensions.
|
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
|
+
|
18
|
+
package NaturalDocs::SourceDB::Extension;
|
19
|
+
|
20
|
+
|
21
|
+
###############################################################################
|
22
|
+
# Group: Interface Functions
|
23
|
+
# These functions must be overridden by the derived class.
|
24
|
+
|
25
|
+
|
26
|
+
#
|
27
|
+
# Function: Register
|
28
|
+
#
|
29
|
+
# Override this function to register the package with <NaturalDocs::SourceDB->RegisterExtension()>.
|
30
|
+
#
|
31
|
+
sub Register
|
32
|
+
{
|
33
|
+
die "Called SourceDB::Extension->Register(). This function should be overridden by every extension.";
|
34
|
+
};
|
35
|
+
|
36
|
+
|
37
|
+
#
|
38
|
+
# Function: Load
|
39
|
+
#
|
40
|
+
# Called by <NaturalDocs::SourceDB->Load()> to load the extension's data. Returns whether it was successful.
|
41
|
+
#
|
42
|
+
# *This function might not be called.* If there's a situation that would cause all the source files to be reparsed anyway,
|
43
|
+
# <NaturalDocs::SourceDB> may skip calling Load() for the remaining extensions. You should *not* depend on this function
|
44
|
+
# for any critical initialization that needs to happen every time regardless.
|
45
|
+
#
|
46
|
+
sub Load # => bool
|
47
|
+
{
|
48
|
+
return 1;
|
49
|
+
};
|
50
|
+
|
51
|
+
|
52
|
+
#
|
53
|
+
# Function: Save
|
54
|
+
#
|
55
|
+
# Called by <NaturalDocs::SourceDB->Save()> to save the extension's data.
|
56
|
+
#
|
57
|
+
sub Save
|
58
|
+
{
|
59
|
+
};
|
60
|
+
|
61
|
+
|
62
|
+
#
|
63
|
+
# Function: OnDeletedDefinition
|
64
|
+
#
|
65
|
+
# Called for each definition deleted by <NaturalDocs::SourceDB>. This is called *after* the definition has been deleted from
|
66
|
+
# the database, so don't expect to be able to read it.
|
67
|
+
#
|
68
|
+
sub OnDeletedDefinition #(string itemString, FileName file, bool wasLastDefinition)
|
69
|
+
{
|
70
|
+
};
|
71
|
+
|
72
|
+
|
73
|
+
#
|
74
|
+
# Function: OnChangedDefinition
|
75
|
+
#
|
76
|
+
# Called for each definition changed by <NaturalDocs::SourceDB>. This is called *after* the definition has been changed, so
|
77
|
+
# don't expect to be able to read the original value.
|
78
|
+
#
|
79
|
+
sub OnChangedDefinition #(string itemString, FileName file)
|
80
|
+
{
|
81
|
+
};
|
82
|
+
|
83
|
+
|
84
|
+
1;
|
@@ -0,0 +1,129 @@
|
|
1
|
+
###############################################################################
|
2
|
+
#
|
3
|
+
# Package: NaturalDocs::SourceDB::File
|
4
|
+
#
|
5
|
+
###############################################################################
|
6
|
+
#
|
7
|
+
# A class used to index items by file.
|
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
|
+
|
18
|
+
package NaturalDocs::SourceDB::File;
|
19
|
+
|
20
|
+
use NaturalDocs::DefineMembers 'ITEMS';
|
21
|
+
|
22
|
+
|
23
|
+
#
|
24
|
+
# Variables: Members
|
25
|
+
#
|
26
|
+
# These constants serve as indexes into the object array.
|
27
|
+
#
|
28
|
+
# ITEMS - An arrayref where an <ExtensionID> is the index and the members are existence hashrefs of the item strigs defined
|
29
|
+
# in this file. The arrayref will always exist, but the hashrefs may be undef.
|
30
|
+
#
|
31
|
+
|
32
|
+
|
33
|
+
#
|
34
|
+
# Function: New
|
35
|
+
#
|
36
|
+
# Returns a new object.
|
37
|
+
#
|
38
|
+
sub New
|
39
|
+
{
|
40
|
+
my $package = shift;
|
41
|
+
|
42
|
+
my $object = [ ];
|
43
|
+
$object->[ITEMS] = [ ];
|
44
|
+
|
45
|
+
bless $object, $package;
|
46
|
+
return $object;
|
47
|
+
};
|
48
|
+
|
49
|
+
|
50
|
+
#
|
51
|
+
# Function: AddItem
|
52
|
+
#
|
53
|
+
# Adds an item to this file. Returns whether this added a new item.
|
54
|
+
#
|
55
|
+
sub AddItem #(ExtensionID extension, string itemString) => bool
|
56
|
+
{
|
57
|
+
my ($self, $extension, $itemString) = @_;
|
58
|
+
|
59
|
+
if (!defined $self->[ITEMS]->[$extension])
|
60
|
+
{
|
61
|
+
$self->[ITEMS]->[$extension] = { $itemString => 1 };
|
62
|
+
return 1;
|
63
|
+
}
|
64
|
+
elsif (!exists $self->[ITEMS]->[$extension]->{$itemString})
|
65
|
+
{
|
66
|
+
$self->[ITEMS]->[$extension]->{$itemString} = 1;
|
67
|
+
return 1;
|
68
|
+
}
|
69
|
+
else
|
70
|
+
{
|
71
|
+
return 0;
|
72
|
+
};
|
73
|
+
};
|
74
|
+
|
75
|
+
|
76
|
+
#
|
77
|
+
# Function: HasItem
|
78
|
+
#
|
79
|
+
# Returns whether the item exists in this file.
|
80
|
+
#
|
81
|
+
sub HasItem #(ExtensionID extension, string itemString) => bool
|
82
|
+
{
|
83
|
+
my ($self, $extension, $itemString) = @_;
|
84
|
+
|
85
|
+
if (defined $self->[ITEMS]->[$extension])
|
86
|
+
{ return exists $self->[ITEMS]->[$extension]->{$itemString}; }
|
87
|
+
else
|
88
|
+
{ return 0; };
|
89
|
+
};
|
90
|
+
|
91
|
+
|
92
|
+
#
|
93
|
+
# Function: DeleteItem
|
94
|
+
#
|
95
|
+
# Deletes the passed item. Returns whether it existed.
|
96
|
+
#
|
97
|
+
sub DeleteItem #(ExtensionID extension, string itemString) => bool
|
98
|
+
{
|
99
|
+
my ($self, $extension, $itemString) = @_;
|
100
|
+
|
101
|
+
if (!defined $self->[ITEMS]->[$extension])
|
102
|
+
{ return 0; }
|
103
|
+
elsif (exists $self->[ITEMS]->[$extension]->{$itemString})
|
104
|
+
{
|
105
|
+
delete $self->[ITEMS]->[$extension]->{$itemString};
|
106
|
+
return 1;
|
107
|
+
}
|
108
|
+
else
|
109
|
+
{ return 0; };
|
110
|
+
};
|
111
|
+
|
112
|
+
|
113
|
+
#
|
114
|
+
# Function: ListItems
|
115
|
+
#
|
116
|
+
# Returns an array of all the item strings defined for a particular extension, or an empty list if none.
|
117
|
+
#
|
118
|
+
sub ListItems #(ExtensionID extension) => string array
|
119
|
+
{
|
120
|
+
my ($self, $extension) = @_;
|
121
|
+
|
122
|
+
if (defined $self->[ITEMS]->[$extension])
|
123
|
+
{ return keys %{$self->[ITEMS]->[$extension]}; }
|
124
|
+
else
|
125
|
+
{ return ( ); };
|
126
|
+
};
|
127
|
+
|
128
|
+
|
129
|
+
1;
|
@@ -0,0 +1,201 @@
|
|
1
|
+
###############################################################################
|
2
|
+
#
|
3
|
+
# Package: NaturalDocs::SourceDB::Item
|
4
|
+
#
|
5
|
+
###############################################################################
|
6
|
+
#
|
7
|
+
# A base class for something being tracked in <NaturalDocs::SourceDB>.
|
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
|
+
|
18
|
+
package NaturalDocs::SourceDB::Item;
|
19
|
+
|
20
|
+
use NaturalDocs::DefineMembers 'DEFINITIONS';
|
21
|
+
|
22
|
+
|
23
|
+
#
|
24
|
+
# Variables: Members
|
25
|
+
#
|
26
|
+
# The following constants are indexes into the object array.
|
27
|
+
#
|
28
|
+
# DEFINITIONS - A hashref that maps <FileNames> to either <NaturalDocs::SourceDB::ItemDefinition>-derived objects or
|
29
|
+
# serves as an existence hashref depending on whether the extension only tracks existence. Will be undef if
|
30
|
+
# there are none.
|
31
|
+
#
|
32
|
+
|
33
|
+
|
34
|
+
#
|
35
|
+
# Function: New
|
36
|
+
#
|
37
|
+
# Creates and returns a new object.
|
38
|
+
#
|
39
|
+
sub New
|
40
|
+
{
|
41
|
+
my $class = shift;
|
42
|
+
|
43
|
+
my $object = [ ];
|
44
|
+
bless $object, $class;
|
45
|
+
|
46
|
+
return $object;
|
47
|
+
};
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
###############################################################################
|
52
|
+
#
|
53
|
+
# Group: Definition Functions
|
54
|
+
#
|
55
|
+
# These functions should be called by <NaturalDocs::SourceDB>. You should not be calling them directly. Call functions
|
56
|
+
# like <NaturalDocs::SourceDB->AddDefinition()> instead.
|
57
|
+
#
|
58
|
+
|
59
|
+
|
60
|
+
#
|
61
|
+
# Function: AddDefinition
|
62
|
+
#
|
63
|
+
# Adds a definition for the passed <FileName>. If it's already defined, the new definition will be ignored.
|
64
|
+
#
|
65
|
+
# Parameters:
|
66
|
+
#
|
67
|
+
# file - The <FileName>.
|
68
|
+
# definition - The definition, which must be an object derived from <NaturalDocs::SourceDB::ItemDefinition> or undef if
|
69
|
+
# the extension only tracks existence.
|
70
|
+
#
|
71
|
+
# Returns:
|
72
|
+
#
|
73
|
+
# Whether the definition was added, which is to say, whether this was the first definition for the passed <FileName>.
|
74
|
+
#
|
75
|
+
sub AddDefinition #(FileName file, optional NaturalDocs::SourceDB::ItemDefinition definition) => bool
|
76
|
+
{
|
77
|
+
my ($self, $file, $definition) = @_;
|
78
|
+
|
79
|
+
if (!defined $self->[DEFINITIONS])
|
80
|
+
{ $self->[DEFINITIONS] = { }; };
|
81
|
+
|
82
|
+
if (!exists $self->[DEFINITIONS]->{$file})
|
83
|
+
{
|
84
|
+
if (!defined $definition)
|
85
|
+
{ $definition = 1; };
|
86
|
+
|
87
|
+
$self->[DEFINITIONS]->{$file} = $definition;
|
88
|
+
return 1;
|
89
|
+
}
|
90
|
+
else
|
91
|
+
{ return 0; };
|
92
|
+
};
|
93
|
+
|
94
|
+
|
95
|
+
#
|
96
|
+
# Function: ChangeDefinition
|
97
|
+
#
|
98
|
+
# Changes the definition for the passed <FileName>.
|
99
|
+
#
|
100
|
+
# Parameters:
|
101
|
+
#
|
102
|
+
# file - The <FileName>.
|
103
|
+
# definition - The definition, which must be an object derived from <NaturalDocs::SourceDB::ItemDefinition>.
|
104
|
+
#
|
105
|
+
sub ChangeDefinition #(FileName file, NaturalDocs::SourceDB::ItemDefinition definition)
|
106
|
+
{
|
107
|
+
my ($self, $file, $definition) = @_;
|
108
|
+
|
109
|
+
if (!defined $self->[DEFINITIONS] || !exists $self->[DEFINITIONS]->{$file})
|
110
|
+
{ die "Tried to change a non-existant definition in SourceD::Item."; };
|
111
|
+
|
112
|
+
$self->[DEFINITIONS]->{$file} = $definition;
|
113
|
+
};
|
114
|
+
|
115
|
+
|
116
|
+
#
|
117
|
+
# Function: GetDefinition
|
118
|
+
#
|
119
|
+
# Returns the <NaturalDocs::SourceDB::ItemDefinition>-derived object for the passed <FileName>, non-zero if it only tracks
|
120
|
+
# existence, or undef if there is no definition.
|
121
|
+
#
|
122
|
+
sub GetDefinition #(FileName file) => NaturalDocs::SourceDB::ItemDefinition or bool
|
123
|
+
{
|
124
|
+
my ($self, $file) = @_;
|
125
|
+
|
126
|
+
if (defined $self->[DEFINITIONS])
|
127
|
+
{ return $self->[DEFINITIONS]->{$file}; }
|
128
|
+
else
|
129
|
+
{ return undef; };
|
130
|
+
};
|
131
|
+
|
132
|
+
|
133
|
+
#
|
134
|
+
# Function: DeleteDefinition
|
135
|
+
#
|
136
|
+
# Removes the definition for the passed <FileName>. Returns whether it was successful, meaning whether a definition existed
|
137
|
+
# for that file.
|
138
|
+
#
|
139
|
+
sub DeleteDefinition #(FileName file) => bool
|
140
|
+
{
|
141
|
+
my ($self, $file) = @_;
|
142
|
+
|
143
|
+
if (defined $self->[DEFINITIONS])
|
144
|
+
{
|
145
|
+
if (exists $self->[DEFINITIONS]->{$file})
|
146
|
+
{
|
147
|
+
delete $self->[DEFINITIONS]->{$file};
|
148
|
+
|
149
|
+
if (!scalar keys %{$self->[DEFINITIONS]})
|
150
|
+
{ $self->[DEFINITIONS] = undef; };
|
151
|
+
|
152
|
+
return 1;
|
153
|
+
};
|
154
|
+
};
|
155
|
+
|
156
|
+
return 0;
|
157
|
+
};
|
158
|
+
|
159
|
+
|
160
|
+
#
|
161
|
+
# Function: HasDefinitions
|
162
|
+
#
|
163
|
+
# Returns whether there are any definitions for this item.
|
164
|
+
#
|
165
|
+
sub HasDefinitions # => bool
|
166
|
+
{
|
167
|
+
my $self = shift;
|
168
|
+
return (defined $self->[DEFINITIONS]);
|
169
|
+
};
|
170
|
+
|
171
|
+
|
172
|
+
#
|
173
|
+
# Function: HasDefinition
|
174
|
+
#
|
175
|
+
# Returns whether there is a definition for the passed <FileName>.
|
176
|
+
#
|
177
|
+
sub HasDefinition #(FileName file) => bool
|
178
|
+
{
|
179
|
+
my ($self, $file) = @_;
|
180
|
+
|
181
|
+
if (defined $self->[DEFINITIONS])
|
182
|
+
{ return (exists $self->[DEFINITIONS]->{$file}); }
|
183
|
+
else
|
184
|
+
{ return 0; };
|
185
|
+
};
|
186
|
+
|
187
|
+
|
188
|
+
#
|
189
|
+
# Function: GetAllDefinitionsHashRef
|
190
|
+
#
|
191
|
+
# Returns a hashref of all the definitions of this item. *Do not change.* The keys are the <FileNames>, and the values are
|
192
|
+
# either <NaturalDocs::SourceDB::ItemDefinition>-derived objects or it's just an existence hashref if those aren't used.
|
193
|
+
#
|
194
|
+
sub GetAllDefinitionsHashRef
|
195
|
+
{
|
196
|
+
my $self = shift;
|
197
|
+
return $self->[DEFINITIONS];
|
198
|
+
};
|
199
|
+
|
200
|
+
|
201
|
+
1;
|
@@ -0,0 +1,45 @@
|
|
1
|
+
###############################################################################
|
2
|
+
#
|
3
|
+
# Package: NaturalDocs::SourceDB::ItemDefinition
|
4
|
+
#
|
5
|
+
###############################################################################
|
6
|
+
#
|
7
|
+
# A base class for all item definitions for extensions that track more than existence.
|
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
|
+
|
18
|
+
package NaturalDocs::SourceDB::ItemDefinition;
|
19
|
+
|
20
|
+
|
21
|
+
#
|
22
|
+
# Function: Compare
|
23
|
+
#
|
24
|
+
# Returns whether the definitions are equal. This version returns true by default, you must override it in your subclasses
|
25
|
+
# to make the results relevant. This is important for <NaturalDocs::SourceDB->AnalyzeTrackedFileChanges()>.
|
26
|
+
#
|
27
|
+
# This will only be called between objects of the same <ExtensionID>. If you use multiple derived classes for the same
|
28
|
+
# <ExtensionID>, you will have to take that into account yourself.
|
29
|
+
#
|
30
|
+
# Parameters:
|
31
|
+
#
|
32
|
+
# other - Another <NaturalDocs::SourceDB::ItemDefinition>-derived object to compare this one to. It will always be from
|
33
|
+
# the same <ExtensionID>.
|
34
|
+
#
|
35
|
+
# Returns:
|
36
|
+
#
|
37
|
+
# Whether they are equal.
|
38
|
+
#
|
39
|
+
sub Compare #(other)
|
40
|
+
{
|
41
|
+
return 1;
|
42
|
+
};
|
43
|
+
|
44
|
+
|
45
|
+
1;
|