NAME

Vim::Helper::Test - Plugin for switching between test and implementation files.

DESCRIPTION

Provides keybindings that take you between test files and module files.

SYNOPSIS

In your config file:

use Vim::Helper qw/
    Test
/;

Test {
    from_mod => sub {
        my ( $filename, $modname, @modparts ) = @_;
        return 't/' . join( "-" => @modparts ) . ".t";
    },
    from_test => sub {
        my ( $filename, $modname, @modparts ) = @_;
        $filename =~ s{^t/}{};
        $filename =~ s{^.*/t/}{};
        $filename =~ s{\.t$}{};
        my ( @parts ) = split '-', $filename;
        return join( '/' => @parts ) . '.pm';
    },
};

ARGS

file_test MOD_FILENAME

Takes the module filename and returns the test file name.

test_imp TEST_FILENAME

Takes the test filename and returns the module file name.

OPTS

None

CONFIGURATION OPTIONS

from_mod => sub { ... }

How to get the test filename from a module file. Default is to take the package name, change the '::' to '-', and append '.t', it then looks for the file in 't/'. So Foo::Bar should be 't/Foo-Bar.t'.

A custom function would look like this:

sub { my ( $filename, $modname, @modparts ) = @_; ... return $new_filename; }

$filename will always be the files name. $modname is read from the top of the file, and @modparts contains each section of the module name split on '::'. If the file cannot be read an error is thrown, so it must be valid and contain a package declaration.

from_test => sub { ... }

How to get the module filename from a test file. Default is to take the test filename, change '-' to '/', and strip off the directory and '.t'. The search path for the module is whatever is provided to LoadMod, or @INC if none LoadMod was not confgiured.

A custom function would look like this:

sub { my ( $filename, $modname, @modparts ) = @_; ... return $new_filename; }

$filename will always be the files name. $modname is read from the top of the file, and @modparts contains each section of the module name split on '::'. Unlike the from_mod function, $modname may be undefined, and no declaration is required in the test files.

test_key => '<Leader>gt'

Key binding for moving from module to test.

imp_key => '<Leader>gi'

Key binding for moving from test to module.

AUTHORS

Chad Granum exodist7@gmail.com

COPYRIGHT

Copyright (C) 2012 Chad Granum

Vim-Helper is free software; Standard perl licence.

Vim-Helper 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 for more details.