App-GitHooks

 view release on metacpan or  search on metacpan

lib/App/GitHooks/Config.pm  view on Meta::CPAN

	$self->{'__source'} = $source;
	$self->{'__path'} = $file;

	return $self;
}


=head2 get()

Retrieve the value for a given section and key name.

	my $value = $config->get( $section, $name );

Note that the C<App::GitHooks> configuration files are organized by sections,
with the main (default) section being '_'.

=cut

sub get
{
	my ( $self, $section, $name ) = @_;

	croak 'A section name is required as first argument'
		if !defined( $section ) || ( $section eq '' );
	croak 'A key name is required as second argument'
		if !defined( $name ) || ( $name eq '' );

	return defined( $self->{ $section } )
		? $self->{ $section }->{ $name }
		: undef;
}


=head2 get_regex()

Retrieve the specified regex for a given section and key name.

	my $regex = $config->get_regex( $section, $name );

Note that this is very much like C<get()>, except that it will treat the value as a regex and strip out outer '/' symbols so that the result is suitable for inclusion in a regex. For example:

	my $regex = $config->get_regex( $section, $name );
	if ( $variable =~ /$regex/ )
	{
		...
	}

=cut

sub get_regex
{
	my ( $self, $section, $name ) = @_;

	my $value = $self->get( $section, $name );
	return undef
		if !defined( $value ) || $value eq '';

	my ( $regex ) = $value =~ /^\s*\/(.*?)\/\s*$/;
	croak "The key $name in the section $section is not a regex, use /.../ to delimit your expression"
		if !defined( $regex );
	croak "The key $name in the section $section does not specify a valid regex, it has unescaped '/' delimiters inside it"
		if $regex =~ /(?<!\\)\//;

	return $regex;
}


=head1 BUGS

Please report any bugs or feature requests through the web interface at
L<https://github.com/guillaumeaubert/App-GitHooks/issues/new>.
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.


=head1 SUPPORT

You can find documentation for this module with the perldoc command.

	perldoc App::GitHooks::Config


You can also look for information at:

=over

=item * GitHub's request tracker

L<https://github.com/guillaumeaubert/App-GitHooks/issues>

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/app-githooks>

=item * CPAN Ratings

L<http://cpanratings.perl.org/d/app-githooks>

=item * MetaCPAN

L<https://metacpan.org/release/App-GitHooks>

=back


=head1 AUTHOR

L<Guillaume Aubert|https://metacpan.org/author/AUBERTG>,
C<< <aubertg at cpan.org> >>.


=head1 COPYRIGHT & LICENSE

Copyright 2013-2017 Guillaume Aubert.

This code is free software; you can redistribute it and/or modify it under the
same terms as Perl 5 itself.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the LICENSE file for more details.



( run in 0.635 second using v1.01-cache-2.11-cpan-59e3e3084b8 )