Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: bfc515ed96
Fetching contributors…

Cannot retrieve contributors at this time

76 lines (50 sloc) 1.543 kB
package App::Grok::Resource::File;
use strict;
use warnings;
use base qw(Exporter);
our @EXPORT_OK = qw(file_index file_fetch file_locate);
our %EXPORT_TAGS = ( ALL => [@EXPORT_OK] );
sub file_fetch {
my ($file) = @_;
# TODO: at some point we'll search through $PERL6LIB, but for now
# we only accept a concrete path
if (-f $file) {
open my $handle, '<', $file or die "Can't open $file: $!";
my $pod = do { local $/ = undef; scalar <$handle> };
close $handle;
return $pod;
}
return;
}
sub file_index {
# this might recurse through $PERL6LIB or something at some point
return;
}
sub file_locate {
my ($file) = @_;
return $file if -f $file;
return;
}
1;
=head1 NAME
App::Grok::Resource::File - Standard file resource for grok
=head1 SYNOPSIS
use strict;
use warnings;
use App::Grok::Resource::File qw<:ALL>;
# this will return everything in $PERL6LIB sometime in the future
my @index = file_index();
# get a filehandle to the thing we want
my $handle = file_fetch('perlintro');
=head1 DESCRIPTION
This resource finds arbitrary documentation on the filesystem.
=head1 FUNCTIONS
=head2 C<file_index>
This method doesn't return anything useful yet.
=head2 C<file_fetch>
Takes a module name, program name, or Pod page name. Since the details of
C<$PERL6LIB> are still fuzzy, it currently just returns the contents of
the supplied file.
=head2 C<file_locate>
Returns the filename given if it is a real file. Not very useful.
=cut
Jump to Line
Something went wrong with that request. Please try again.