diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-06-27 18:21:59 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-06-27 18:21:59 -0400 |
commit | 6bd057874f99aeb2c0d243880f3333a64d96045f (patch) | |
tree | cff8f85b8a3a784a582774b3ab9f160a74032c68 /lib/Reply.pm | |
parent | ca1aa50a460e9a179168dfb211f3e32751f69bb7 (diff) | |
download | reply-6bd057874f99aeb2c0d243880f3333a64d96045f.tar.gz reply-6bd057874f99aeb2c0d243880f3333a64d96045f.zip |
clean up the publisher stuff some more
Diffstat (limited to 'lib/Reply.pm')
-rw-r--r-- | lib/Reply.pm | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/Reply.pm b/lib/Reply.pm index 57e9166..bfcab4f 100644 --- a/lib/Reply.pm +++ b/lib/Reply.pm @@ -81,11 +81,10 @@ sub new { my $class = shift; my %opts = @_; - require Reply::Plugin::Defaults; - my $self = bless { - plugins => [], - _default_plugin => Reply::Plugin::Defaults->new, - }, $class; + my $self = bless {}, $class; + + $self->{plugins} = []; + $self->{_default_plugin} = $self->_instantiate_plugin('Defaults'); if (defined $opts{config}) { if (!ref($opts{config})) { @@ -183,6 +182,15 @@ sub _load_plugin { my $self = shift; my ($plugin, $opts) = @_; + $plugin = $self->_instantiate_plugin($plugin, $opts); + + push @{ $self->{plugins} }, $plugin; +} + +sub _instantiate_plugin { + my $self = shift; + my ($plugin, $opts) = @_; + if (!blessed($plugin)) { $plugin = compose_module_name("Reply::Plugin", $plugin); require_module($plugin); @@ -198,7 +206,7 @@ sub _load_plugin { ); } - push @{ $self->{plugins} }, $plugin; + return $plugin; } sub _plugins { |