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 )