NAME
   MooseX::Has::Options - Succinct options for Moose

VERSION
   version 0.001

SYNOPSIS
       use Moose;
       use MooseX::Has::Options;

       has 'some_attribute' => (
           qw(:ro :required),
           isa => 'Str',
           ...
       );

       has 'another_attribute' => (
           qw(:ro :lazy_build),
           isa => 'Str',
           ...
       );

DESCRIPTION
   This module provides a succinct syntax for declaring options for Moose
   attributes. It hijacks the "has" function imported by Moose and replaces
   it with one that understands the options syntax described above.

USAGE
 Declaring options
   MooseX::Has::Params works by checking the arguments to "has" for strings
   that look like options, i.e. alphanumeric strings preceded by a colon,
   and replaces them with a hash whose keys are the names of the options
   (sans the colon) and the values are 1's. Thus,

       has 'some_attribute', ':required';

   becomes:

       has 'some_attribute', required => 1;

   The options "ro", "rw" and "bare" are treated differently:

       has 'some_attribute', ':ro';

   becomes:

       has 'some_attribute', is => 'ro';

   Options must come in the beginning of the argument list.
   MooseX::Has::Options will stop searching for options after the first
   alphanumeric string that does not start with a colon.

 Importing
   MooseX::Has::Params hooks into a "has" function that already exists in
   your module's namespace. Therefore it must be imported after Moose. A
   side effect of this is that it will work with any module that provides a
   "has" function, e.g. Mouse.

   If you specify arguments when importing MooseX::Has::Params, it will
   hook to these functions instead. Use this to change the behavior of
   functions that provide a syntax similar to Moose attributes:

       use HTML::FormHandler::Moose;
       use MooseX::Has::Options qw(has_field);

       has_field 'name' => (
           qw(:required),
           type => 'Text',
       );

   The special treatment of "ro", "rw" and "bare" will be disabled for such
   functions.

SEE ALSO
   *   MooseX::Has::Sugar

AUTHOR
   Peter Shangov <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2011 by Peter Shangov.

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.