| Jifty documentation | Contained in the Jifty distribution. |
Jifty::Module::Pluggable - Jifty-specific helper for Module::Pluggable
A custom subclass of Module::Pluggable to override the require
mechanism with one that better fits our own view of the world.
Date: October 24, 2006 12:19:31 AM PDT
From: simon@thegestalt.org
Subject: Re: Module::Pluggable and CORE::require
To: jesse@bestpractical.com
On Mon, Oct 23, 2006 at 09:11:22PM -0700, Jesse Vincent said: does this thread make any sense to you? It looks like Module::Pluggable is interacting poorly with UNIVERSAL::require?
Module::Pluggable used to to use UNIVERSAL::require but I switched because I was trying to get rid of dependencies.
I farmed the requiring stuff off to it's own _require method in order to make it easy to subclass so that people could override how the require was done.
What we actually need to override is Module::Pluggable::Object::_require, which we do below.
| Jifty documentation | Contained in the Jifty distribution. |
package Jifty::Module::Pluggable; use strict; use warnings; use base qw/Module::Pluggable/;
use Module::Pluggable::Object; use UNIVERSAL::require; no warnings 'redefine'; sub Module::Pluggable::Object::_require { my $self = shift; my $module = shift; # Module::Pluggable::Object::_require expects a true value (the error message) on failure # On success, it expects you to return undef. return if $module =~/\.#/; eval { Jifty::Util->require($module); }; my $err = $@; return $err; } 1;