From: oliver Date: Mon, 9 Jun 2008 22:14:43 +0000 (+0000) Subject: add expanded documentation X-Git-Tag: v1.003015~85 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=commitdiff_plain;h=a4dd2d8933ca2a9b4f627dfe6d03d679171372e4;hp=408564af8826ffeb3647bbd482e43a606cbdade8 add expanded documentation git-svn-id: http://dev.catalyst.perl.org/repos/bast/trunk/Devel-REPL@4478 bd8105ee-0ff8-0310-8827-fb3f25b6796d --- diff --git a/lib/Devel/REPL/Profile.pm b/lib/Devel/REPL/Profile.pm index c5c0c23..b449c54 100644 --- a/lib/Devel/REPL/Profile.pm +++ b/lib/Devel/REPL/Profile.pm @@ -5,4 +5,82 @@ use namespace::clean -except => [ 'meta' ]; requires 'apply_profile'; +=head1 NAME + +Devel::REPL::Profile + +=head1 SYNOPSIS + + package Devel::REPL::Profile::MyProject; + + use Moose; + use namespace::clean -except => [ 'meta' ]; + + with 'Devel::REPL::Profile'; + + sub apply_profile { + my ($self, $repl) = @_; + # do something here + } + + 1; + +=head1 DESCRIPTION + +For particular projects you might well end up running the same commands each +time the REPL shell starts up - loading Perl modules, setting configuration, +and so on. + +A mechanism called I exists to let you package and distribute these +start-up scripts, as Perl modules. + +=head1 USAGE + +Quite simply, follow the L section above to create a boilerplate +profile module. Within the C method, the C<$repl> variable can +be used to run any commands as the user would, within the context of their +running C shell instance. + +For example, to load a module, you might have something like this: + + sub apply_profile { + my ($self, $repl) = @_; + $repl->eval('use Carp'); + } + +As you can see, the C method is used to run any code. The user won't see +any output from that, and the code can "safely" die without destroying the +REPL shell. The return value of C will be the return value of the code +you gave, or else if it died then a C object is returned. + +If you want to load a C plugin, then use the following method: + + $repl->load_plugin('Timing'); + +The C and C methods should cover most of what you would +want to do before the user has access to the shell. Remember that plugin +features are immediately available, so you can load for example the C +plugin, and then declare C variables which the user will have access to. + +=head2 Selecting a Profile + +To run the shell with a particular profile, use the following command: + + system$ re.pl --profile MyProject + +When the profile name is unqualified, as in the above example, the profile is +assumed to be in the C namespace. Otherwise if you +pass something which contains the C<::> character sequence, it will be loaded +as-is. + +=head1 AUTHOR + +Matt S Trout - mst (at) shadowcatsystems.co.uk (L) + +=head1 LICENSE + +This library is free software under the same terms as perl itself + +=cut + 1;