Skip to content

Commit

Permalink
Refactoring, added a little lazy-loading
Browse files Browse the repository at this point in the history
  • Loading branch information
kentfredric committed Jul 17, 2009
1 parent f737188 commit 9eb775c
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions lib/Test/Whitespace.pm
Expand Up @@ -5,11 +5,8 @@ package Test::Whitespace;
use strict;
use warnings;

use Sub::Install ();
use Test::Builder ();
use File::Find::Rule ();
use File::Find::Rule::Perl ();
use Carp ();
use Test::Builder ();
use Carp ();

=head1 SYNOPSIS
Expand Down Expand Up @@ -83,8 +80,14 @@ In all of the above cases, this module is for you.
=cut

# Aliases
# Aliases, with a little difference.
# Modules aliases need to work wont be loaded till somebody
# calls the alias :)

sub FFR() {
require File::Find::Rule;
require File::Find::Rule::Perl;

'File::Find::Rule';
}

Expand All @@ -102,6 +105,7 @@ sub WhitespaceRuleSet {

sub import_subs {
my $caller = shift;
require Sub::Install;
Sub::Install::install_sub( { code => \&WhitespaceRule, into => $caller, as => 'WhitespaceRule', } );
Sub::Install::install_sub( { code => \&WhitespaceRuleSet, into => $caller, as => 'WhitespaceRuleSet', } );
return;
Expand All @@ -126,11 +130,8 @@ sub import_autotest {

for ( @{ $args->{'files'} } ) {
my $result = $rs->test_file($_);
if ( $result->[0] == 1 ) {
$tb->ok( 1, "Test::Whitespace for $_" );
}
else {
$tb->ok( 0, "Test::Whitespace for $_" );
$tb->ok( $result->[0], "Test::Whitespace for $_" );
unless ( $result->[0] == 1 ) {
for ( @{ $result->[1] } ) {
$tb->diag($_);
}
Expand All @@ -149,7 +150,7 @@ sub find_files {
$f = $types->();
}

@files = $f->in( @{ $in } );
@files = $f->in( @{$in} );
return \@files;
}

Expand All @@ -161,9 +162,17 @@ sub find_files {
my $scan_for = {
'eol' => sub { $_[1]->tailing; },
'tab' => sub { $_[1]->tabs; },
'extra' => sub { $_[1]->add_rule( @{$_} ) for @{ ( shift @{ $_[0] } ) } },
'extra' => sub { scan_for_extra( $_[1], scalar shift @{ $_[0] } ) },
};

sub scan_for_extra {
my ( $rs, $extra ) = @_;
for ( @{$extra} ) {
$rs->add_rule( @{$_} );
}
return $rs;
}

sub inject_rules {

my ( $rs, $args ) = @_;
Expand Down

0 comments on commit 9eb775c

Please sign in to comment.