App-Framework
view release on metacpan or search on metacpan
lib/App/Framework/Core.pm view on Meta::CPAN
my $feature_init_href = {} ;
## May have some initialisation values for the feature
my $feature_config_href = $this->feature_config ;
## See if we can find a name match
foreach my $name (keys %$feature_config_href)
{
if (lc $name eq lc $feature)
{
$feature_init_href = $feature_config_href->{$name} ;
#$this->prt_data("_feature_init($feature)=", $feature_init_href) ;
last ;
}
}
return $feature_init_href ;
}
##----------------------------------------------------------------------------
#
#=item B<feature_list()>
#
#Return list of installed features
#
#=cut
#
#sub feature_list
#{
# my $this = shift ;
#
# my $features_href = $this->_feature_list() ;
# my @list = map {$features_href->{$_}{'specified'}} keys %$features_href ;
# return @list ;
#}
##----------------------------------------------------------------------------
#
#=item B<_feature_info($name)>
#
#Return HASH ref of feature information for this feature.
#
#=cut
#
sub _feature_info
{
my $this = shift ;
my ($name, %args) = @_ ;
my $features_href = $this->_feature_list() ;
$name = lc $name ;
my $info_href ;
if (exists($features_href->{$name}))
{
$info_href = $features_href->{$name} ;
}
else
{
$this->throw_fatal("Feature \"$name\" not found") ;
}
return $info_href ;
}
#----------------------------------------------------------------------------
=item B<feature_installed($name)>
Return named feature object if the feature is installed; otherwise returns undef.
=cut
sub feature_installed
{
my $this = shift ;
my ($name) = @_ ;
my $features_href = $this->_feature_list() ;
$name = lc $name ;
my $feature = undef ;
if (exists($features_href->{$name}))
{
my $feature_href = $features_href->{$name} ;
$feature = $feature_href->{'object'} ;
}
return $feature ;
}
#----------------------------------------------------------------------------
=item B<feature($name [, %args])>
Return named feature object. Alternative interface to just calling the feature's 'get/set' method.
For example, 'sql' feature can be accessed either as:
my $sql = $app->feature("sql") ;
or:
my $sql = $app->sql() ;
=cut
sub feature
{
my $this = shift ;
my ($name, %args) = @_ ;
my $feature_href = $this->_feature_info($name) ;
my $feature = $feature_href->{'object'} ;
if (%args)
{
( run in 0.641 second using v1.01-cache-2.11-cpan-39bf76dae61 )