[Bps-public-commit] rt-onlinedocs branch, master, updated. 0.10-9-g707f371

Alex Vandiver alexmv at bestpractical.com
Wed Oct 26 21:26:41 EDT 2011


The branch, master has been updated
       via  707f371a500ecb252ac71f859783811618a0447b (commit)
       via  946bea12eb1b87670bab91617ffb4fbb2928b513 (commit)
       via  074714499c01501a77a6e458367a88008b6a7655 (commit)
       via  8155d2bbb538dae561b762da008f83aa13fe9873 (commit)
      from  558d77b6397c80a9658732149891f89422240e45 (commit)

Summary of changes:
 .gitignore                                         |   19 +--
 MANIFEST                                           |    6 +-
 html/Callbacks/RT-OnlineDocs/Elements/Tabs/Default |   32 -----
 .../RT-OnlineDocs/Elements/Tabs/Privileged         |   11 ++
 html/Developer/Perldoc/Body.html                   |  120 --------------------
 html/Developer/Perldoc/Elements/Body               |   70 ++++++++++++
 html/Developer/Perldoc/Elements/TOC                |   57 +++++++++
 html/Developer/Perldoc/TOC.html                    |   88 --------------
 html/Developer/Perldoc/index.html                  |   36 ++++--
 lib/RT/OnlineDocs.pm                               |   25 ++++
 10 files changed, 195 insertions(+), 269 deletions(-)
 delete mode 100644 html/Callbacks/RT-OnlineDocs/Elements/Tabs/Default
 create mode 100644 html/Callbacks/RT-OnlineDocs/Elements/Tabs/Privileged
 delete mode 100644 html/Developer/Perldoc/Body.html
 create mode 100644 html/Developer/Perldoc/Elements/Body
 create mode 100644 html/Developer/Perldoc/Elements/TOC
 delete mode 100644 html/Developer/Perldoc/TOC.html

- Log -----------------------------------------------------------------
commit 8155d2bbb538dae561b762da008f83aa13fe9873
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Oct 26 21:12:42 2011 -0400

    Disembowel and rewrite internals for 4.0 compatibility and modern Pod::Simple::HTML

diff --git a/html/Callbacks/RT-OnlineDocs/Elements/Tabs/Default b/html/Callbacks/RT-OnlineDocs/Elements/Tabs/Default
deleted file mode 100644
index b6f9bb2..0000000
--- a/html/Callbacks/RT-OnlineDocs/Elements/Tabs/Default
+++ /dev/null
@@ -1,32 +0,0 @@
-%# BEGIN LICENSE BLOCK
-%# 
-%#  Copyright (c) 2002-2003 Jesse Vincent <jesse at bestpractical.com>
-%#  
-%#  This program is free software; you can redistribute it and/or modify
-%#  it under the terms of version 2 of the GNU General Public License 
-%#  as published by the Free Software Foundation.
-%# 
-%#  A copy of that license should have arrived with this
-%#  software, but in any event can be snarfed from www.gnu.org.
-%# 
-%#  This program is distributed in the hope that it will be useful,
-%#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-%#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-%#  GNU General Public License for more details.
-%# 
-%# END LICENSE BLOCK
-
-<%init>
-
-if ($session{'CurrentUser'}->UserObj->HasRight(
-    Right => 'SuperUser',
-    Object => $RT::System,
-)) {
-
-    $toptabs->{'ZZ-RTFM'} = { title =>loc("API Docs"),
-                          path  => "Developer/Perldoc/index.html" };
-}
-</%init>
-<%args>
-$toptabs =>undef
-</%args>
diff --git a/html/Callbacks/RT-OnlineDocs/Elements/Tabs/Privileged b/html/Callbacks/RT-OnlineDocs/Elements/Tabs/Privileged
new file mode 100644
index 0000000..e907272
--- /dev/null
+++ b/html/Callbacks/RT-OnlineDocs/Elements/Tabs/Privileged
@@ -0,0 +1,11 @@
+<%perl>
+return unless $session{'CurrentUser'}->UserObj->HasRight(
+    Right => 'SuperUser',
+    Object => $RT::System,
+);
+
+Menu()->child('tools')->child('config')->child('tools')->child( perldoc => 
+    title => loc("API Docs"),
+    path  => "/Developer/Perldoc",
+);
+</%perl>
diff --git a/html/Developer/Perldoc/Body.html b/html/Developer/Perldoc/Body.html
deleted file mode 100644
index f956956..0000000
--- a/html/Developer/Perldoc/Body.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
-"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
-<head>
-<title><% $n || 'RT' %> - RT Pod Online</title>
-<style type="text/css"><!--
-a { text-decoration: none }
-a:hover { text-decoration: underline }
-a:focus { background: #99ff99; border: 1px black dotted }
---></style>
-</head>
-<body>
-<h3><a href="<% $RT::WebURL %>" target="_top">Return to RT</a></h3>
-<%PERL>
-my $dirname = File::Basename::dirname($INC{'RT.pm'});
-my $localdirname = $dirname."/../local/lib/";
-my $plugindir = $dirname."/../local/plugins";
-$n =~ s/::/\//g;
-
-my $show;
-my $suffix;
-
-foreach my $ending (qw(pm pod)) {
-    if ( -r "$dirname/$n.$ending" ) {
-        $show = "$dirname/$n";
-        $suffix = $ending;
-    } elsif ( -r "$localdirname/$n.$ending" ) {
-        $show = "$localdirname/$n";
-        $suffix = $ending;
-    } else {
-	if(opendir(PLUGINS, $plugindir)) {
-	    while(defined(my $plugin = readdir(PLUGINS))) {
-		next if($plugin =~ /^\./);
-		if( -r $plugindir."/".$plugin."/lib/$n.$ending") {
-		    $show = $plugindir."/".$plugin."/lib/$n";
-		    $suffix = $ending;
-		    last;
-		}
-	    }
-	    closedir(PLUGINS);
-	}
-    }
-
-    last if $show;
-}
-
-unless ($show) {
-        $show = "$dirname/RT";
-        $suffix = 'pm';
-}
-
-if (-r "$show.$suffix") {
-    local $/;
-    my $got_name = 0;
-
-    my $total_body = '';
-
-    foreach my $postfix ('', '_Overlay', '_Vendor', '_Local') {
-    	my $fh;
-        next unless -r "$show$postfix.$suffix";
-        open $fh, "$show$postfix.$suffix" or next;
-        my $body = <$fh>;
-        if ($body =~ s/.*Create takes a hash of values and creates a row in the
-database:([^=]+)//s) {
-            # okay, reduce it...
-            $body = "=head1 SCHEMA\n\n$1\n=head1 ACCESSORS\n\n\n=cut\n$body";
-            $body =~ s/=item/=head2/g;
-        }
-        elsif ($body =~ /^=item NewItem$/m and $n =~ /s$/) {
-            my $pkg = $n;
-            $pkg =~ s{/}{::}g;
-            chop $pkg;
-            $body = "=head1 NAME\n\n${pkg}s - Collection of $pkg
-objects\n\n=cut\n";
-            $got_name++;
-        }
-        else {
-            $body =~ s/^=head1 NAME[^=]+//m if $got_name;
-        }
-
-        $body =~ s/^=head1\b(?! ACCESSORS).*\s*(?==(head1|cut))//mg;
-        $body =~ s/^=head1 (?:AUTHOR|SEE ALSO|SYNOPSIS)\s*[^=]+(^=cut)?//mg;
-        $body =~ s/^=/\n=/mg;
-        $body =~ s/^=begin testing\n/=begin testing\n\n/mg;
-        close $fh;
-
-	$total_body .= $body;
-    }
-	my $body;
-    my $converter = Pod::Simple::HTML->new();
-    $converter->output_string(\$body);
-    $converter->parse_string_document($total_body);
-    $body =~ s{.*?<body [^>]+>}{}s;
-    $body =~ s{</body>\s*</html>\s*$}{};
-    $n =~ s{/}{::}g;
-    $m->print("<h1>$n</h1>");
-    $body =~ s/(?<!\$)\b(RT::[a-zA-Z0-9:]+)\b/<a href="Body.html?n=$1">$1<\/a>/g;
-    $body =~ s{(?<![\$:])(?<!RT::)\b((?!(\w+_)?RT::)\w+::\w+)\b}{<a
-href="http://search.cpan.org/search?query=$1&mode=module">$1</a>}g;
-    $body =~ s!</li>\n\t<ul>!<ul>!;
-    $body =~ s!</ul>!</ul></li>!;
-    $body =~ s!<p></p>!!;
-    $body =~ s!<a name=!<a id=!g;
-    $body =~ s!__index__!index!g;
-    $m->print($body);
-}
-</%PERL>
-</body></html>
-<%ARGS>
-$Target    => '&method=Body'
-$n  => ''
-</%ARGS>
-<%INIT>
-require File::Basename;
-require File::Find;
-require File::Temp;
-require File::Spec;
-require Pod::Simple::HTML;
-</%INIT>
diff --git a/html/Developer/Perldoc/Elements/Body b/html/Developer/Perldoc/Elements/Body
new file mode 100644
index 0000000..1e74f88
--- /dev/null
+++ b/html/Developer/Perldoc/Elements/Body
@@ -0,0 +1,85 @@
+<%PERL>
+my $dirname   = "$RT::BasePath/lib";
+my $localdir  =  $RT::LocalLibPath;
+my $plugindir =  $RT::LocalPluginPath;
+
+# We intentionally don't use the plugins API, as this also gets us
+# plugins that are not currently enabled
+my @plugins = ();
+if(opendir(PLUGINS, $plugindir)) {
+    while(defined(my $plugin = readdir(PLUGINS))) {
+	next if($plugin =~ /^\./);
+	push(@plugins, "$plugindir/$plugin/lib");
+    }
+    closedir(PLUGINS);
+}
+
+my $path = $package;
+$path =~ s!::!/!g;
+
+my $found;
+for my $ending (qw(pm pod)) {
+    for my $libpath ($dirname, $localdir, @plugins) {
+        next unless -r "$libpath/$path.$ending";
+        $found = "$libpath/$path.$ending";
+        last;
+    }
+    last if $found;
+}
+$found ||= $INC{"RT.pm"};
+
+my $fh;
+open $fh, $found or next;
+my $body = do { local $/; <$fh> };
+close $fh;
+
+# Trim empty sections
+$body =~ s/^=head1 .*\s*(?==(head1|cut))//mg;
+
+# Remove AUTHOR, SEE ALSO, and SYNOPSIS sections
+$body =~ s/^=head1 (?:AUTHOR|SEE ALSO|SYNOPSIS).*?^(=head|=cut)/$1/smg;
+
+# Both of the above leave in place the final =cut, which may be an error
+# if we are no longer in a POD section due to the missing =head1.  There
+# are two halves to the fix: first, remove every =cut which has no POD
+# before it.
+1 while $body =~ s/\A((^([^=\n].*|)\n)*)^=cut.*/$1/m;
+
+# Second, remove every =cut which comes after a =cut
+$body =~ s/^=cut.*\n((^([^=\n].*|)\n)*)^=cut.*/$1/mg;
+
+# Fix up POD blocks which may be lacking empty lines before them
+$body =~ s/^=/\n=/mg;
+
+my $html = "";
+my $converter = Pod::Simple::HTML->new();
+$converter->output_string(\$html);
+$converter->html_header_before_title("<h1>");
+$converter->force_title($package);
+$converter->html_header_after_title("</h1>");
+$converter->html_footer("");
+$converter->perldoc_url_prefix("http://metacpan.org/module/");
+
+# When generating the TOC, we kept track of which modules are local.
+# Use the non-exposed (but written for external consumption (!?)) API
+# for mapping packages to URLs.
+$converter->{'podhtml_LOT'} = $m->notes("toc");
+
+$converter->parse_string_document($body);
+
+# Anything in the RT:: namespace should get linked to the appropriate doc
+my $self = RT->Config->Get('WebURL') . "Developer/Perldoc?n=";
+$html =~ s{(?<!\$)(?<!Perldoc\?n=)\b(RT(::[a-zA-Z0-9]+)+)(?!</a>)(?!::)\b}{<a href="$self$1">$1<\/a>}g;
+
+# Other Foo::Bar packages should get linked to metacpan
+$html =~ s{(?<![\$:])(?<!RT::)\b((?!(\w+_)?RT::)\w+::\w+)\b}{<a
+href="http://metacpan.org/module/$1">$1</a>}g;
+
+# Squish adjacent paragraphs together
+$html =~ s!<p></p>!!;
+
+$m->print($html);
+</%PERL>
+<%ARGS>
+$package
+</%ARGS>
diff --git a/html/Developer/Perldoc/Elements/TOC b/html/Developer/Perldoc/Elements/TOC
new file mode 100644
index 0000000..401fbdc
--- /dev/null
+++ b/html/Developer/Perldoc/Elements/TOC
@@ -0,0 +1,72 @@
+<%PERL>
+my $dirname   = "$RT::BasePath/lib";
+my $localdir  =  $RT::LocalLibPath;
+my $plugindir =  $RT::LocalPluginPath;
+
+# We intentionally don't use the plugins API, as this also gets us
+# plugins that are not currently enabled
+my @plugins = ();
+if(opendir(PLUGINS, $plugindir)) {
+    while(defined(my $plugin = readdir(PLUGINS))) {
+	next if($plugin =~ /^\./);
+	push(@plugins, "$plugindir/$plugin/lib");
+    }
+    closedir(PLUGINS);
+}
+
+my $self = RT->Config->Get('WebURL') . "Developer/Perldoc?n=";
+
+# Find relevant files
+my @found;
+my %toc;
+File::Find::find(
+    {
+        untaint => 1,
+        follow  => ($^O ne 'MSWin32'),
+        wanted  => sub {
+            return unless /(\w+)\.(?:pm|pod)$/;
+            return if $1 eq "perllocal";
+            return if $1 =~ /_(Local|Vendor|Overlay)/;
+            my $name = $File::Find::name;
+            $name =~ s!.*?/lib/!!;
+            $name =~ s!\.(?:pm|pod)$!!i;
+            $name =~ s!\W!::!g;
+            $toc{$name} = "$self$name";
+            push @found, $name;
+        },
+    },
+    $dirname, $localdir, @plugins
+);
+$m->notes(toc => \%toc);
+
+my ($prev, $indent) = ("", 0);
+foreach my $file (sort @found) {
+    my ($parent, $name) = ($1, $2) if $file =~ /(?:(.*)::)?(\w+)$/;
+    $parent = "" unless defined $parent;
+    if ($file =~ /^$prev\::(.*)/) {
+        my $foo = $1;
+        while ($foo =~ s/(\w+):://) {
+            $indent++;
+            $m->print(qq{<span style="margin-left: @{[$indent]}em">$1</span><br />\n});
+        }
+        $indent++;
+    } elsif ($prev !~ /^$parent\::/) {
+        while ($parent =~ s/(\w+)//) {
+            next if $prev =~ s/\b$1:://;
+            while ($prev =~ s/:://) {
+                $indent--;
+            }
+            $m->print(qq{<span style="margin-left: @{[$indent]}em">$1</span><br />\n});
+            $indent++;
+        }
+    } elsif ($prev =~ /^$parent\::(.*::)/) {
+        my $foo = $1;
+        while ($foo =~ s/:://) {
+            $indent--;
+        }
+    }
+    $m->print(
+      qq{<a style="margin-left: @{[$indent]}em" href="$self$file">$name</a><br />\n} );
+    $prev = $file;
+}
+</%PERL>
diff --git a/html/Developer/Perldoc/TOC.html b/html/Developer/Perldoc/TOC.html
deleted file mode 100644
index dbf5fd8..0000000
--- a/html/Developer/Perldoc/TOC.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
-"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
-<head>
-<title><% $n || 'RT' %> - RT Developer Documentation Online</title>
-<style type="text/css"><!--
-a { text-decoration: none }
-a:hover { text-decoration: underline }
-a:focus { background: #99ff99; border: 1px black dotted }
---></style>
-</head>
-<body style="background: #dddddd">
-<%PERL>
-
-
-my $dirname = File::Basename::dirname($INC{'RT.pm'});
-my $localdir = $dirname."/../local/lib";
-my $plugindir = $dirname."/../local/plugins";
-my @plugins = ();
-if(opendir(PLUGINS, $plugindir)) {
-    while(defined(my $plugin = readdir(PLUGINS))) {
-	next if($plugin =~ /^\./);
-	push(@plugins, $plugindir."/".$plugin."/lib");
-    }
-    closedir(PLUGINS);
-}
-my @found;
-File::Find::find(
-    { untaint => 1,
-      wanted => sub {
-        return unless /(\w+)\.(?:pm|pod)$/;
-        return if $1 =~ /(?:perllocal|_(?:Local|Vendor|Overlay))/;
-        my $name = $File::Find::name;
-        $name =~ s/.*lib\b.//;
-        $name =~ s!\.(?:pm|pod)!!i;
-        $name =~ s!\W!::!g;
-        push @found, $name;
-    },follow => ($^O ne 'MSWin32') },
-    $dirname,$localdir, at plugins
-);
-my ($prev, $indent);
-foreach my $file (sort @found) {
-    my ($parent, $name) = ($1, $2) if $file =~ /(?:(.*)::)?(\w+)$/;
-    if ($file =~ /^$prev\::(.*)/) {
-        my $foo = $1;
-        while ($foo =~ s/(\w+):://) {
-            $indent++;
-            $m->print(('   ' x $indent));
-            $m->print("$1<br />");
-        }
-        $indent++;
-    } elsif ($prev !~ /^$parent\::/) {
-        while ($parent =~ s/(\w+)//) {
-            next if $prev =~ s/\b$1:://;
-            while ($prev =~ s/:://) {
-                $indent--;
-            }
-            $m->print(('   ' x $indent));
-            $m->print("$1<br />");
-            $indent++;
-        }
-    } elsif ($prev =~ /^$parent\::(.*::)/) {
-        my $foo = $1;
-        while ($foo =~ s/:://) {
-            $indent--;
-        }
-    }
-    $m->print( ( '   ' x $indent )
-      . '<a target="podBody" href="Body.html?n=' . $file . '">' . $name
-      . '</a><br />' ."\n" );
-    $prev = $file;
-}
-
-</%PERL>
-</body></html>
-<%INIT>
-require File::Basename;
-require File::Find;
-require File::Temp;
-require File::Spec;
-require Pod::Simple::HTML;
-</%INIT>
-<%ARGS>
-$n  => ''
-$method => ''
-$Target    => '&method=Body'
-</%ARGS>
diff --git a/html/Developer/Perldoc/index.html b/html/Developer/Perldoc/index.html
index 30b1728..ff1bed8 100644
--- a/html/Developer/Perldoc/index.html
+++ b/html/Developer/Perldoc/index.html
@@ -1,5 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
-"http://www.w3.org/TR/html4/">
+<!DOCTYPE html>
 <html lang="en">
 <head>
 <title><% $n || 'RT' %> - RT Pod Online</title>
@@ -7,18 +6,29 @@
 a { text-decoration: none }
 a:hover { text-decoration: underline }
 a:focus { background: #99ff99; border: 1px black dotted }
+
+#apidoc-content: { float: left; }
+#apidoc-toc { float: right; width: 250px; border-left: 1px solid black; padding-left: 3px;  }
 --></style>
 </head>
-<FRAMESET COLS="*, 250">
-    <FRAME src="Body.html" name="podBody">
-    <FRAME src="TOC.html" name="podTOC">
-    <NOFRAMES>
-        <a style="display: none" href="#toc">Table of Contents</a>
-<& Body.html, Target => '' &>
-        <h1><a id="toc">Table of Contents</a></h1>
-<& TOC.html, Target => '' &>
-    </NOFRAMES>
-</FRAMESET>
+<body>
+<div id="apidoc-container">
+
+<div id="apidoc-toc">
+<h1><a id="toc">Table of Contents</a></h1>
+<h3><a href="<% RT->Config->Get('WebURL') %>">Return to RT</a></h3>
+<& Elements/TOC &>
+</div>
+
+<div id="apidoc-content">
+<& Elements/Body, package => $n &>
+</div>
+
+</div>
+</body>
+</html>
+% # Skip footer
+% $m->abort;
 <%args>
-$n => undef
+$n => ''
 </%args>
diff --git a/lib/RT/OnlineDocs.pm b/lib/RT/OnlineDocs.pm
index 40e40b5..d556b18 100644
--- a/lib/RT/OnlineDocs.pm
+++ b/lib/RT/OnlineDocs.pm
@@ -6,6 +6,12 @@ use warnings;
 
 package RT::OnlineDocs;
 
+require File::Basename;
+require File::Find;
+require File::Temp;
+require File::Spec;
+require Pod::Simple::HTML;
+
 our $VERSION = "0.10";
 
 1;

commit 074714499c01501a77a6e458367a88008b6a7655
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Oct 26 21:16:39 2011 -0400

    Refactor common lib-finding out

diff --git a/html/Developer/Perldoc/Elements/Body b/html/Developer/Perldoc/Elements/Body
index 1e74f88..44ed35d 100644
--- a/html/Developer/Perldoc/Elements/Body
+++ b/html/Developer/Perldoc/Elements/Body
@@ -1,27 +1,12 @@
 <%PERL>
-my $dirname   = "$RT::BasePath/lib";
-my $localdir  =  $RT::LocalLibPath;
-my $plugindir =  $RT::LocalPluginPath;
-
-# We intentionally don't use the plugins API, as this also gets us
-# plugins that are not currently enabled
-my @plugins = ();
-if(opendir(PLUGINS, $plugindir)) {
-    while(defined(my $plugin = readdir(PLUGINS))) {
-	next if($plugin =~ /^\./);
-	push(@plugins, "$plugindir/$plugin/lib");
-    }
-    closedir(PLUGINS);
-}
-
 my $path = $package;
 $path =~ s!::!/!g;
 
 my $found;
-for my $ending (qw(pm pod)) {
-    for my $libpath ($dirname, $localdir, @plugins) {
-        next unless -r "$libpath/$path.$ending";
-        $found = "$libpath/$path.$ending";
+for my $ext (qw(pm pod)) {
+    for my $libpath (RT::OnlineDocs->lib_paths) {
+        next unless -r "$libpath/$path.$ext";
+        $found = "$libpath/$path.$ext";
         last;
     }
     last if $found;
@@ -29,7 +14,7 @@ for my $ending (qw(pm pod)) {
 $found ||= $INC{"RT.pm"};
 
 my $fh;
-open $fh, $found or next;
+open $fh, $found or $m->abort(404);
 my $body = do { local $/; <$fh> };
 close $fh;
 
diff --git a/html/Developer/Perldoc/Elements/TOC b/html/Developer/Perldoc/Elements/TOC
index 401fbdc..ffd737f 100644
--- a/html/Developer/Perldoc/Elements/TOC
+++ b/html/Developer/Perldoc/Elements/TOC
@@ -1,19 +1,4 @@
 <%PERL>
-my $dirname   = "$RT::BasePath/lib";
-my $localdir  =  $RT::LocalLibPath;
-my $plugindir =  $RT::LocalPluginPath;
-
-# We intentionally don't use the plugins API, as this also gets us
-# plugins that are not currently enabled
-my @plugins = ();
-if(opendir(PLUGINS, $plugindir)) {
-    while(defined(my $plugin = readdir(PLUGINS))) {
-	next if($plugin =~ /^\./);
-	push(@plugins, "$plugindir/$plugin/lib");
-    }
-    closedir(PLUGINS);
-}
-
 my $self = RT->Config->Get('WebURL') . "Developer/Perldoc?n=";
 
 # Find relevant files
@@ -35,7 +20,7 @@ File::Find::find(
             push @found, $name;
         },
     },
-    $dirname, $localdir, @plugins
+    RT::OnlineDocs->lib_paths
 );
 $m->notes(toc => \%toc);
 
diff --git a/lib/RT/OnlineDocs.pm b/lib/RT/OnlineDocs.pm
index d556b18..431c14f 100644
--- a/lib/RT/OnlineDocs.pm
+++ b/lib/RT/OnlineDocs.pm
@@ -14,4 +14,23 @@ require Pod::Simple::HTML;
 
 our $VERSION = "0.10";
 
+sub lib_paths {
+    my $dirname   = "$RT::BasePath/lib";
+    my $localdir  =  $RT::LocalLibPath;
+    my $plugindir =  $RT::LocalPluginPath;
+
+    # We intentionally don't use the plugins API, as this also gets us
+    # plugins that are not currently enabled
+    my @plugins = ();
+    if(opendir(PLUGINS, $plugindir)) {
+        while(defined(my $plugin = readdir(PLUGINS))) {
+            next if($plugin =~ /^\./);
+            push(@plugins, "$plugindir/$plugin/lib");
+        }
+        closedir(PLUGINS);
+    }
+
+    return ($dirname, $localdir, @plugins);
+}
+
 1;

commit 946bea12eb1b87670bab91617ffb4fbb2928b513
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Oct 26 21:25:51 2011 -0400

    Updated gitignore -- don't ignore existing files, or our callback dir

diff --git a/.gitignore b/.gitignore
index e1e276b..ae1787c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,8 @@
-blib*
-Makefile
-Makefile.old
-Build
-Build.bat
-_build*
-pm_to_blib*
-*.tar.gz
-.lwpcookies
-cover_db
-pod2htm*.tmp
-RT-OnlineDocs*
-README
+/blib
+/pm_to_blib
+/Makefile
+/Makefile.old
+/cover_db
+/RT-OnlineDocs*
 *.bak
 /MYMETA*

commit 707f371a500ecb252ac71f859783811618a0447b
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Oct 26 21:26:39 2011 -0400

    Updated MANIFEST for changed file locations

diff --git a/MANIFEST b/MANIFEST
index e8b7044..0a17271 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,9 +1,9 @@
 ChangeLog
-html/Callbacks/RT-OnlineDocs/Elements/Tabs/Default
+html/Callbacks/RT-OnlineDocs/Elements/Tabs/Privileged
 html/Developer/Perldoc/autohandler
-html/Developer/Perldoc/Body.html
+html/Developer/Perldoc/Elements/Body
+html/Developer/Perldoc/Elements/TOC
 html/Developer/Perldoc/index.html
-html/Developer/Perldoc/TOC.html
 inc/Module/AutoInstall.pm
 inc/Module/Install.pm
 inc/Module/Install/AutoInstall.pm

-----------------------------------------------------------------------



More information about the Bps-public-commit mailing list