f57aa994c6b1a7e0f296ece961ee213448eb82cd
[gitmo/MooseX-Getopt.git] / lib / MooseX / Getopt / Meta / Attribute / NoGetopt.pm
1 package MooseX::Getopt::Meta::Attribute::NoGetopt;
2 # ABSTRACT: Optional meta attribute for ignoring params
3
4 use Moose;
5
6 extends 'Moose::Meta::Attribute'; # << Moose extending Moose :)
7    with 'MooseX::Getopt::Meta::Attribute::Trait::NoGetopt';
8
9 no Moose;
10
11 # register this as a metaclass alias ...
12 package # stop confusing PAUSE
13     Moose::Meta::Attribute::Custom::NoGetopt;
14 sub register_implementation { 'MooseX::Getopt::Meta::Attribute::NoGetopt' }
15
16 1;
17
18 =head1 SYNOPSIS
19
20   package App;
21   use Moose;
22
23   with 'MooseX::Getopt';
24
25   has 'data' => (
26       metaclass => 'NoGetopt',  # do not attempt to capture this param
27       is        => 'ro',
28       isa       => 'Str',
29       default   => 'file.dat',
30   );
31
32 =head1 DESCRIPTION
33
34 This is a custom attribute metaclass which can be used to specify
35 that a specific attribute should B<not> be processed by
36 C<MooseX::Getopt>. All you need to do is specify the C<NoGetopt>
37 metaclass.
38
39   has 'foo' => (metaclass => 'MooseX::Getopt::Meta::Attribute::NoGetopt', ... );
40
41 =head2 Custom Metaclass alias
42
43 This now takes advantage of the Moose 0.19 feature to support
44 custom attribute metaclass. This means you can also
45 use this as the B<NoGetopt> alias, like so:
46
47   has 'foo' => (metaclass => 'NoGetopt', cmd_flag => 'f');
48
49 =cut