1 package MooseX::Getopt::Meta::Attribute::NoGetopt;
2 # ABSTRACT: Optional meta attribute for ignoring params
6 extends 'Moose::Meta::Attribute'; # << Moose extending Moose :)
7 with 'MooseX::Getopt::Meta::Attribute::Trait::NoGetopt';
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' }
23 with 'MooseX::Getopt';
26 metaclass => 'NoGetopt', # do not attempt to capture this param
29 default => 'file.dat',
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>
39 has 'foo' => (metaclass => 'MooseX::Getopt::Meta::Attribute::NoGetopt', ... );
41 =head2 Use 'traits' instead of 'metaclass'
43 You should rarely need to explicitly set the attribute metaclass. It is much
44 preferred to simply provide a trait (a role applied to the attribute
45 metaclass), which allows other code to futher modify the attribute by applying
48 Therefore, you should first try to do this:
50 has 'foo' => (traits => ['NoGetopt', ...], ...);
52 =head2 Custom Metaclass alias
54 This now takes advantage of the Moose 0.19 feature to support
55 custom attribute metaclass. This means you can also
56 use this as the B<NoGetopt> alias, like so:
58 has 'foo' => (metaclass => 'NoGetopt', cmd_flag => 'f');