summaryrefslogtreecommitdiffstats
path: root/lib/Reply/Plugin/LoadClass.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reply/Plugin/LoadClass.pm')
-rw-r--r--lib/Reply/Plugin/LoadClass.pm16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Reply/Plugin/LoadClass.pm b/lib/Reply/Plugin/LoadClass.pm
index 8bba634..a225cdd 100644
--- a/lib/Reply/Plugin/LoadClass.pm
+++ b/lib/Reply/Plugin/LoadClass.pm
@@ -1,12 +1,28 @@
package Reply::Plugin::LoadClass;
use strict;
use warnings;
+# ABSTRACT: attempts to load classes implicitly if possible
use base 'Reply::Plugin';
use Module::Runtime 'use_package_optimistically';
use Try::Tiny;
+=head1 SYNOPSIS
+
+ ; .replyrc
+ [LoadClass]
+
+=head1 DESCRIPTION
+
+If executing a line of code fails due to a method not being defined on a
+package, this plugin will load the corresponding module and then try executing
+the line again. This simplifies common cases like running C<< DateTime->now >>
+at the prompt before loading L<DateTime> - this plugin will cause DateTime to
+be loaded implicitly.
+
+=cut
+
sub execute {
my $self = shift;
my ($next, @args) = @_;