logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Class::Meta::Types::Perl - Perl data types

Author

       David E. Wheeler <david@justatheory.com>

Description

       This module provides Perl data types for use with Class::Meta attributes.  Simply load it, then pass the
       name of one of its types to the add_attribute() method of a Class::Meta object. See Class::Meta::Type for
       more information on using and creating data types.

       The validation checks for Class::Meta::Types::Perl are provided by the Class::Meta::Type's support for
       object type validation, since Perl data types are understood by UNIVERSAL::isa().

       The data types created by Class::Meta::Types::Perl are:

       scalar
           A simple scalar value. This can be anything, and has no validation checks.

       scalarref
           A scalar reference. UNIVERSAL::isa() must return 'SCALAR'.

       array
       arrayref
           A array reference. UNIVERSAL::isa() must return 'ARRAY'.

       hash
       hashref
           A hash reference. UNIVERSAL::isa() must return 'HASH'.

       code
       coderef
       closure
           A code reference. Also known as a closure. UNIVERSAL::isa() must return 'CODE'.

Name

       Class::Meta::Types::Perl - Perl data types

See Also

       Other classes of interest within the Class::Meta distribution include:

       Class::Meta
           This class contains most of the documentation you need to get started with Class::Meta.

       Class::Meta::Type
           This class manages the creation of data types.

       Class::Meta::Attribute
           This class manages Class::Meta class attributes, all of which are based on data types.

       Other data type modules:

       Class::Meta::Types::String
       Class::Meta::Types::Boolean
       Class::Meta::Types::Numeric

Support

       This  module  is stored in an open GitHub repository <http://github.com/theory/class-meta/>. Feel free to
       fork and contribute!

       Please file bug reports via GitHub Issues  <http://github.com/theory/class-meta/issues/>  or  by  sending
       mail to bug-Class-Meta@rt.cpan.org <mailto:bug-Class-Meta@rt.cpan.org>.

Synopsis

         package MyApp::Thingy;
         use strict;
         use Class::Meta;
         use Class::Meta::Types::Perl;
         # OR...
         # use Class::Meta::Types::Perl 'affordance';
         # OR...
         # use Class::Meta::Types::Perl 'semi-affordance';

         BEGIN {
             # Create a Class::Meta object for this class.
             my $cm = Class::Meta->new( key => 'thingy' );

             # Add an integer attribute.
             $cm->add_attribute( name => 'my_hash',
                                 type => 'hash' );
             $cm->build;
         }

See Also