]> git.vpit.fr Git - perl/modules/rgit.git/blob - Rgit/Utils.pm
Update VPIT::TestHelpers to 15e8aee3
[perl/modules/rgit.git] / Rgit / Utils.pm
1 package App::Rgit::Utils;
2
3 use strict;
4 use warnings;
5
6 use Carp qw/croak/;
7
8 =head1 NAME
9
10 App::Rgit::Utils - Miscellanous utilities for App::Rgit classes.
11
12 =head1 VERSION
13
14 Version 0.04
15
16 =cut
17
18 our $VERSION = '0.04';
19
20 =head1 DESCRIPTION
21
22 Miscellanous utilities for L<App::Rgit> classes.
23
24 This is an internal module to L<rgit>.
25
26 =head1 CONSTANTS
27
28 =head2 C<NEXT>, C<REDO>, C<LAST>, C<SAVE>
29
30 Codes to return from the C<report> callback to respectively proceed to the next repository, retry the current one, end it all, and save the return code.
31
32 =cut
33
34 use constant {
35  SAVE => 0x1,
36  NEXT => 0x2,
37  REDO => 0x4,
38  LAST => 0x8,
39 };
40
41 =head1 FUNCTIONS
42
43 =head2 C<validate @method_args>
44
45 Sanitize arguments passed to methods.
46
47 =cut
48
49 sub validate {
50  my $class = shift;
51  croak 'Optional arguments must be passed as key/value pairs' if @_ % 2;
52  $class = ref($class) || $class;
53  $class = caller unless $class;
54  return $class, @_;
55 }
56
57 =head1 EXPORT
58
59 C<validate> is only exported on request, either by its name or by the C<'funcs'> tag.
60
61 C<NEXT> C<REDO>, C<LAST> and C<SAVE> are only exported on request, either by their name or by the C<'codes'> tags.
62
63 =cut
64
65 use base qw/Exporter/;
66
67 our @EXPORT         = ();
68 our %EXPORT_TAGS    = (
69  funcs => [ qw/validate/ ],
70  codes => [ qw/SAVE NEXT REDO LAST/ ],
71 );
72 our @EXPORT_OK      = map { @$_ } values %EXPORT_TAGS;
73 $EXPORT_TAGS{'all'} = [ @EXPORT_OK ];
74
75 =head1 SEE ALSO
76
77 L<rgit>.
78
79 =head1 AUTHOR
80
81 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
82    
83 You can contact me by mail or on C<irc.perl.org> (vincent).
84
85 =head1 BUGS
86
87 Please report any bugs or feature requests to C<bug-rgit at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=rgit>.  I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
88
89 =head1 SUPPORT
90
91 You can find documentation for this module with the perldoc command.
92
93     perldoc App::Rgit::Utils
94
95 =head1 COPYRIGHT & LICENSE
96
97 Copyright 2008 Vincent Pit, all rights reserved.
98
99 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
100
101 =cut
102
103 1; # End of App::Rgit::Utils