4 use MooseX::Runnable::Util::ArgParser;
6 use Test::TableDriven (
10 '-I/foo/bar/lib -Ilib -IFoo module with lots of args' => 'module' ,
12 '-Ilib -- Foo' => 'Foo',
13 '-Ilib -MFoo::Bar -- Foo::Baz' => 'Foo::Baz',
15 '+Plugin1 --args --go --here -- Foo' => 'Foo',
16 '+P --args --arehere +Q --more --args -- Foo' => 'Foo',
17 '-Ilib +P --args --arehere +Q --more --args -Ilib -- Foo' => 'Foo',
18 '+P --args -- Foo -- Bar' => 'Foo',
19 '-Ilib +Debug -- PlanFinder' => 'PlanFinder',
20 '-Ilib -Iexample +Debug --prefix 42 -- MyApp' => 'MyApp',
27 '-MFoo Foo' => ['Foo'],
28 '-MFoo Foo' => ['Foo'],
29 '-MFoo -MFoo Foo' => ['Foo', 'Foo'],
30 '-MFoo -MBar -MBaz::Quux -Ilib OH::HAI' => ['Foo','Bar','Baz::Quux'],
31 '+End -MFoo -MBar -- OH::HAI' => [],
32 '-Ilib +End -MFoo -- OH::HAI' => [],
33 '-Ilib -MFoo OH::HAI' => ['Foo'],
34 '-Ilib -MFoo +End -MBar -- OH::HAI' => ['Foo'],
35 '-Ilib +Debug -- PlanFinder' => [],
36 '-Ilib -Iexample +Debug --prefix 42 -- MyApp' => [],
42 '-Ilib Foo' => ['lib'],
44 '-MFoo -MBar -MBaz::Quux -Ilib OH::HAI' => ['lib'],
45 '+End -MFoo -MBar -- OH::HAI' => [],
46 '-Ilib +End -MFoo -- OH::HAI' => ['lib'],
47 '-Ilib -MFoo OH::HAI' => ['lib'],
48 '-Ilib -MFoo +End -IBar -- OH::HAI' => ['lib'],
49 '-Ilib -MFoo -I../../../../lib +End -IBar -- OH::HAI' =>
50 ['lib', '../../../../lib'],
51 '-Ilib +Debug -- PlanFinder' => ['lib'],
52 '-Ilib -Iexample +Debug --prefix 42 -- MyApp' => ['lib', 'example'],
58 '-Ilib -MFoo -- Bar' => {},
59 '+One --arg +Two --arg2 -- End' => { One => ['--arg'], Two => ['--arg2'] },
60 '+Debug +PAR +Foo::Bar -- Baz' => { Debug => [], PAR => [], 'Foo::Bar' => [] },
61 '-Ilib +Debug -- PlanFinder' => { Debug => [] },
62 '++Foo -- Bar' => { '+Foo' => [] },
63 '-Ilib -Iexample +Debug --prefix 42 -- MyApp' => { Debug => [ '--prefix', '42' ] },
74 '-Ilib -MFoo --help' => 1,
79 '-Ilib +Debug -- PlanFinder' => 0,
80 '-Ilib -Iexample +Debug --prefix 42 -- MyApp' => 0,
86 '-Ilib -MFoo Bar' => [],
88 'Foo Bar Baz' => ['Bar', 'Baz'],
89 '-- Foo Bar Baz' => ['Bar', 'Baz'],
90 '-Ilib Foo -Ilib' => ['-Ilib'],
91 '-MFoo Foo -MFoo' => ['-MFoo'],
92 '-MFoo -MFoo Foo -MFoo' => ['-MFoo'],
93 '-- Foo --help' => ['--help'],
94 '-Ilib +Debug -- PlanFinder' => [],
95 '-Ilib -Iexample +Debug --prefix 42 -- MyApp' => [],
101 my $p = MooseX::Runnable::Util::ArgParser->new( argv => [split / /, $argv] );
102 return $p->class_name;
107 my $p = MooseX::Runnable::Util::ArgParser->new( argv => [split / /, $argv] );
113 my $p = MooseX::Runnable::Util::ArgParser->new( argv => [split / /, $argv] );
114 return [ map { $_->stringify } $p->include_paths ];
119 my $p = MooseX::Runnable::Util::ArgParser->new( argv => [split / /, $argv] );
125 my $p = MooseX::Runnable::Util::ArgParser->new( argv => [split / /, $argv] );
126 return $p->is_help ? 1 : 0;
131 my $p = MooseX::Runnable::Util::ArgParser->new( argv => [split / /, $argv] );