--- trunk/lib/Frey/File.pm 2008/12/12 18:00:21 818 +++ trunk/lib/Frey/File.pm 2009/01/09 19:33:26 972 @@ -2,6 +2,7 @@ use Moose::Role; use File::Slurp qw//; +use Carp qw/confess/; =head2 read_file @@ -21,17 +22,27 @@ =head2 dir_extension - my @files = $self->dir_extension( 'var/directory/', '\.(ya?ml)$' ); +Returns array of full paths with some extension + + my @files = $self->dir_extension( 'var/directory/', qw/\.(ya?ml)$/ ); =cut sub dir_extension { - my ($self,$path,$extension) = @_; + my ($self,$path,$extension_regex) = @_; + + confess "extension not regex" unless ref($extension_regex) eq 'Regexp'; opendir(my $dir, $path) || die "can't opendir $path: $!"; - my @files = sort grep { m/$extension/ } readdir($dir); + my @files = map { "$path/$_" } sort grep { $extension_regex && -f "$path/$_" } readdir($dir); closedir $dir; return @files; } +sub strip_path_extension { + my ( $self, $path ) = @_; + $path =~ s{^(?:.*/)?([^/]+)\.[^/]+$}{$1}; + return $path; +} + 1;