Added global config for components
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Utils.pm
CommitLineData
f05af9ba 1package Catalyst::Utils;
2
3use strict;
4use attributes ();
5
6=head1 NAME
7
8Catalyst::Utils - The Catalyst Utils
9
10=head1 SYNOPSIS
11
12See L<Catalyst>.
13
14=head1 DESCRIPTION
15
16=head1 METHODS
17
18=over 4
19
20=item attrs($coderef)
21
22Returns attributes for coderef in a arrayref
23
24=cut
25
26sub attrs { attributes::get( $_[0] ) || [] }
27
28=item prefix($class, $name);
29
30Returns a prefixed action.
31
32=cut
33
34sub prefix {
35 my ( $class, $name ) = @_;
36 my $prefix = &class2prefix($class);
37 $name = "$prefix/$name" if $prefix;
38 return $name;
39}
40
84cf74e7 41=item class2appclass($class);
42
43Returns the appclass for class.
44
45=cut
46
47sub class2appclass {
48 my $class = shift || '';
49 my $appname = '';
50 if ( $class =~ /^(.*)::([MVC]|Model|View|Controller)?::.*$/ ) {
51 $appname = $1;
52 }
53 return $appname;
54}
55
2930d610 56=item class2classprefix($class);
57
58Returns the classprefix for class.
59
60=cut
61
62sub class2classprefix {
63 my $class = shift || '';
64 my $prefix;
65 if ( $class =~ /^(.*::[MVC]|Model|View|Controller)?::.*$/ ) {
66 $prefix = $1;
67 }
68 return $prefix;
69}
70
84cf74e7 71=item class2classsuffix($class);
72
73Returns the classsuffix for class.
74
75=cut
76
77sub class2classsuffix {
78 my $class = shift || '';
79 my $prefix = class2appclass($class) || '';
80 $class =~ s/$prefix\:\://;
81 return $class;
82}
83
f05af9ba 84=item class2prefix($class);
85
86Returns the prefix for class.
87
88=cut
89
90sub class2prefix {
91 my $class = shift || '';
92 my $prefix;
93 if ( $class =~ /^.*::([MVC]|Model|View|Controller)?::(.*)$/ ) {
94 $prefix = lc $2;
95 $prefix =~ s/\:\:/\//g;
96 }
97 return $prefix;
98}
99
100=back
101
102=head1 AUTHOR
103
104Sebastian Riedel, C<sri@cpan.org>
105
106=head1 COPYRIGHT
107
108This program is free software, you can redistribute it and/or modify it under
109the same terms as Perl itself.
110
111=cut
112
1131;