GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MOOSEX::HAS::OPTIONS (3)

.ds Aq ’

NAME

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

CONTENTS

VERSION

version 0.003

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.

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;



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.

The default behaviour can be customised per attribute. For example, here is how ro, rw and bare work:



    has some_attribute, :ro;



becomes:



    has some_attribute, is => ro;



See below for details.

    Handlers

MooseX::Has::Options allows you to expand specific ’shortcut’ arguments to arbitrary values via the handler interface. A ’handler’ is a module in the MooseX::Has::Options::Handler namespace that provides a handler function. The handler function should return a hash whose keys are shortcut names, and the values are hashrefs with the values that the respective shortcuts should be expanded to. In order to enable the shortcuts supplied by a given handler you need to add it in the import statement:



    use MooseX::Has::Options qw(NativeTypes);

    has some_attribute, qw(:ro :hash), default => sub {{ foo => bar }};



The following handlers ship with the default distribution:
o MooseX::Has::Options::Handler::Accessors (included by default when you import this module)
o MooseX::Has::Options::Handler::NativeTypes
o MooseX::Has::Options::Handler::NoInit

IMPLEMENTATION DETAILS

MooseX::Has::Options hijacks the has function imported by Moose and replaces it with one that understands the options syntax described above. This is not an optimal solution, but the current implementation of Moose::Meta::Attribute prevents this functionality from being provided as a meta trait.

DEPRECATED BEHAVIOUR

Previous versions of MooseX::Has::Params allowed you to specify during import the name of the function too hook into, like so:



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

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



This behaviour is deprecated as of version 0.003 as this syntax is now used for specifying handlers. If you need to hook into a different function see the implementation of MooseX::Has::Options::import() and MooseX::Has::Options::import_into().

SEE ALSO

o MooseX::Has::Sugar

AUTHOR

Peter Shangov <pshangov@yahoo.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 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.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MOOSEX::HAS::OPTIONS (3) 2012-11-12

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.