dwww Home | Manual pages | Find package

Object::Pad::MOP::FielUserrContributed Perl DoObject::Pad::MOP::FieldAttr(3pm)

NAME
       "Object::Pad::MOP::FieldAttr" - meta-object representation of a field
       attribute for "Object::Pad"

DESCRIPTION
       This API provides a way for pure-perl implementations of field
       attributes to be provided. Pure-perl attributes cannot currently add
       new behaviour to the way that fields work, but they do provide a means
       for class authors to annotate extra metadata onto fields, that can be
       queried by other code.

       Primilarily this is done by using the "get_attribute_value" in
       Object::Pad::MOP::Field accessor method on a field metadata instance.

       This API should be considered experimental, and will emit warnings to
       that effect. They can be silenced with

          use Object::Pad qw( :experimental(custom_field_attr) );

METHODS
   register
          Object::Pad::MOP::FieldAttr->register( $name, %args )

       Since version 0.60.

       Creates a new field attribute of the given name. The name must begin
       with a capital letter, in order to distinguish this from any of the
       built-in core attributes, whose names are lowercase.

       The attribute is only available if the hints hash contains a key of the
       name given by the attribute's "permit_hintkey" argument. This would
       typically be set in the hints hash by the "import" method of the module
       implementing it, and would be named based on the name of the module
       providing the attribute:

          sub import { $^H{"Some::Package::Name/Attrname"} }

       Takes the following additional named arguments:

       permit_hintkey => STRING
           Required. A string giving a key that must be found in the hints
           hash ("%^H") for this attribute name to be visible.

       apply => CODE
           An optional code reference for a callback function to invoke when
           the attribute is applied to a field. If present, it is passed the
           field metadata instance as a Object::Pad::MOP::Field reference, and
           a string containing the contents of the attribute's parenthesized
           value. The return value of the callback will be stored as the
           attribute's value and can be accessed by the "get_attribute_value"
           method on the field metadata.

              $result = $apply->( $fieldmeta, $value )

           If the "apply" callback is absent then the string value itself is
           stored.

AUTHOR
       Paul Evans <leonerd@leonerd.org.uk>

perl v5.36.0                      2023-01-13  Object::Pad::MOP::FieldAttr(3pm)

Generated by dwww version 1.15 on Tue Jun 25 07:34:13 CEST 2024.