The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.39

  • Moose
    • documenting the use of '+name' with attributes that come from recently composed roles. It makes sense, people are using it, and so why not just officially support it.
    • fixing the 'extends' keyword so that it will not trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
  • oose
    • added the perl -Moose=+Class::Name feature to allow monkeypatching of classes in one liners
  • Moose::Util
    • fixing the 'apply_all_roles' keyword so that it will not trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
  • Moose::Meta::Class
    • added ->create method which now supports roles (thanks to jrockway)
      • added tests for this
    • added ->create_anon_class which now supports roles and caching of the results (thanks to jrockway)
      • added tests for this
    • made ->does_role a little more forgiving when it is checking a Class::MOP era metaclasses.
  • Moose::Meta::Role::Application::ToInstance
    • it is now possible to pass extra params to be used when a role is applied to an the instance (rebless_params)
      • added tests for this
  • Moose::Util::TypeConstraints
    • class_type now accepts an optional second argument for a custom message. POD anotated accordingly (groditi)
      • added tests for this
    • it is now possible to make anon-enums by passing 'enum' an ARRAY ref instead of the $name => @values. Everything else works as before.
      • added tests for this
  • t/
    • making test for using '+name' on attributes consumed from a role, it works and makes sense too.
  • Moose::Meta::Attribute
    • fix handles so that it doesn't return nothing when the method cannot be found, not sure why it ever did this originally, this means we now have slightly better support for AUTOLOADed objects
      • added more delegation tests
    • adding ->does method to this so as to better support traits and their introspection.
      • added tests for this
  • Moose::Object
    • localizing the Data::Dumper configurations so that it does not pollute others (RT #33509)
    • made ->does a little more forgiving when it is passed Class::MOP era metaclasses.

Documentation

How to cook a Moose
Frequently asked questions about Moose
The (always classic) Point example.
The meta-attribute example
A simple BankAccount example
A lazy BinaryTree example
Subtypes, and modeling a simple Company class hierarchy
More subtypes, coercion in a Request class
The Moose::Role example
The augment/inner example
Snippets of code for using Types and Type Constraints
For when things go wrong with Moose
Formal spec for Role behavior

Modules

A postmodern object system for Perl 5
The Moose attribute metaclass
The Moose metaclass
The Moose Instance metaclass
A Moose Method metaclass
A Moose Method metaclass for accessors
Method Meta Object for constructors
Method Meta Object for destructors
A Moose Method metaclass for overriden methods
The Moose Role metaclass
A base class for role application
Compose a role into a class
Compose a role into an instance
Compose a role into another role
An object to represent the set of roles
A Moose Method metaclass for Roles
A Moose metaclass for required methods in Roles
The Moose Type Coercion metaclass
The Moose Type Coercion metaclass for Unions
The Moose Type Constraint metaclass
Class/TypeConstraint parallel hierarchy
Higher Order type constraints for Moose
Higher Order type constraints for Moose
registry for type constraints
A union of Moose type constraints
The base object for Moose
The Moose Role
Utilities for working with Moose classes
Type constraint system for Moose
Optimized constraint bodies for various moose types
Test functions for Moose specific features
syntactic sugar to make Moose one-liners easier