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

Changes for version 0.04

  • Moose::Role
    • Roles can now consume other roles
      • added tests for this
    • Roles can specify required methods now with the requires() keyword
      • added tests for this
  • Moose::Meta::Role
    • ripped out much of it's guts ,.. much cleaner now
    • added required methods and correct handling of them in apply() for both classes and roles
      • added tests for this
    • no longer adds a does() method to consuming classes it relys on the one in Moose::Object
    • added roles attribute and some methods to support roles consuming roles
  • Moose::Meta::Attribute
    • added support for triggers on attributes
      • added tests for this
    • added support for does option on an attribute
      • added tests for this
  • Moose::Meta::Class
    • added support for attribute triggers in the object construction
      • added tests for this
  • Moose
    • Moose no longer creates a subtype for your class if a subtype of the same name already exists, this should DWIM in 99.9999% of all cases
  • Moose::Util::TypeConstraints
    • fixed bug where incorrect subtype conflicts were being reported
      • added test for this
  • Moose::Object
    • this class can now be extended with 'use base' if you need it, it properly loads the metaclass class now
      • added test for this

Changes for version 0.03_02

  • Moose
    • you must now explictly use Moose::Util::TypeConstraints it no longer gets exported for you automatically
  • Moose::Object
    • new() now accepts hash-refs as well as key/value lists
    • added does() method to check for Roles
      • added tests for this
  • Moose::Meta::Class
    • added roles attribute along with the add_role() and does_role() methods
      • added tests for this
  • Moose::Meta::Role
    • now adds a does() method to consuming classes which tests the class's hierarchy for roles
      • added tests for this

Changes for version 0.03_01

  • Moose::Cookbook
    • added new Role recipe (no content yet, only code)
  • Moose
    • added 'with' keyword for Role support
      • added test and docs for this
    • fixed subtype quoting bug
      • added test for this
  • Moose::Role
    • Roles for Moose
      • added test and docs
  • Moose::Util::TypeConstraints
    • added the message keyword to add custom error messages to type constraints
  • Moose::Meta::Role
    • the meta role to support Moose::Role
      • added tests and docs
  • Moose::Meta::Class
    • moved a number of things from Moose.pm to here, they should have been here in the first place
  • Moose::Meta::Attribute
    • moved the attribute option macros here instead of putting them in Moose.pm
  • Moose::Meta::TypeConstraint
    • added the message attributes and the validate method
      • added tests and docs for this

Documentation

How to cook a Moose
The (always classic) Point 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

Modules

Moose, it's the new Camel
The Moose attribute metaclass
The Moose metaclass
The Moose Role metaclass
The Moose Type Coercion metaclass
The Moose Type Constraint metaclass
The base object for Moose
The Moose Role
Type constraint system for Moose

Provides

in lib/Moose/Meta/Class.pm
in lib/Moose/Meta/Role.pm