Changes for version 2.1301 - 2014-08-19 (TRIAL RELEASE)
- BUG FIXES
- Conflict detection for overloading operators is now more correct. If a class consumed two roles that both had identical overloading methods (because they got them from some other role, for example), this caused an error, but it shouldn't. GH #4. (rjbs)
- Similarly, when a role consumes another role, conflicts in overloading operators are now silently resolved in favor of the consuming role, just as they are with methods. Note that conflicts between the fallback setting for roles are still an error.
Changes for version 2.1300 - 2014-08-11 (TRIAL RELEASE)
- ENHANCEMENTS
- Moose now has core support for overloading in roles. When a role with overloading is applied to classes or other roles, the overloading settings are transferred to the consumer. Conflicts between roles are treated much like method conflicts. This obviates the need for MooseX::Role::WithOverloading. If you are using MooseX::Role::WithOverloading, upgrade to version 0.15+ and it will simply become a no-op when used with this version of Moose.
- OTHER
- The overloading info methods for roles and classes no longer treat "fallback" as an overloaded op. Instead, there are new get_overload_fallback_value() and set_overload_fallback_value() methods to deal with this explicitly. This is arguably a bug fix.
Documentation
How to cook a Moose
Demonstrates the use of method modifiers in a subclass
Demonstrates various attribute features including lazy, predicates, weak refs, and more
Builder methods and lazy_build
Demonstrates the use of subtypes and how to model classes related to companies, people, employees, etc.
Extending a non-Moose parent class
The augment modifier, which turns normal method overriding "inside-out"
Operator overloading, subtypes, and coercion
Demonstrates subtypes and coercion use HTTP-related classes (Request, Protocol, etc.)
Making Moose fast by making your class immutable
Using BUILDARGS and BUILD to hook into object construction
Point and Point3D classes, showing basic attributes and subclassing.
Providing a role for the base object class
Moose extension overview
Acting like Moose.pm and providing sugar Moose-style
Providing an alternate base object class
A meta-attribute, attributes with labels
Adding a "table" attribute to the metaclass
Creating a glob reference meta-instance class
Labels implemented via attribute traits
A method metaclass for marking methods public or private
Adding a "table" attribute as a metaclass trait
Welcome to the meta world (Why Go Meta?)
Applying a role to an object instance
Using roles for code reuse
Advanced Role Composition - method exclusion and aliasing
Restricted "keywords" in Moose
Snippets of code for using Types and Type Constraints
Expanded into Moose::Manual::BestPractices, so go read that
Expanded into Moose::Manual, so go read that
What is Moose, and how do I use it?
Object attributes with Moose
Get the most out of Moose
Making your classes use Moose (and subclassing)
Moose OO concepts
Object construction (and destruction) with Moose
How to get involved in Moose
Attribute delegation
Important Changes in Moose
Moose's exceptions
Moose's Exception Types
Frequently asked questions about Moose
The Moose (and Class::MOP) meta API
Moose's method modifiers
Recommended Moose extensions
Roles, an alternative to deep hierarchies and base classes
Policies regarding support, releases, and compatibility.
Moose's type system
Moose idioms in plain old Perl 5 without the sugar
Formal spec for Role behavior
Moved to Moose::Manual::Unsweetened, so go read that
Modules
A Meta Object Protocol for Perl 5
Attribute Meta Object
Class Meta Object
Implements immutability for metaclass objects
Manages deprecation warnings for Class::MOP
Instance Meta Object
Method Meta Object
Method Meta Object for accessors
Method Meta Object for constructors
Abstract base class for generated methods
Method base class for methods which have been inlined
Method Meta Object for meta methods
Method Meta Object for methods which implement overloading
Method Meta Object for methods with before/after/around modifiers
Extremely limited trait application
Base class for mixin classes
Core attributes shared by attribute metaclasses
Methods for metaclasses which have attributes
Methods for metaclasses which have methods
Module Meta Object
Base class for metaclasses
Package Meta Object
A postmodern object system for Perl 5
Provide information on conflicts for Moose
Manages deprecation warnings for Moose
Superclass for Moose internal exceptions
make an import() and unimport() just like Moose.pm
The Moose attribute metaclass
Delegate to native Perl types
Shared role for native delegation traits
Helper trait for ArrayRef attributes
Helper trait for Bool attributes
Helper trait for CodeRef attributes
Helper trait for Int attributes which represent counters
Helper trait for HashRef attributes
Helper trait for Num attributes
Helper trait for Str attributes
The Moose metaclass
Implements immutability for metaclass objects
The Moose Instance metaclass
A Moose Method metaclass
A Moose Method metaclass for accessors
A Moose Method metaclass for augmented methods
Method Meta Object for constructors
A Moose Method metaclass for delegation methods
Method Meta Object for destructors
A Moose Method metaclass for meta methods
A Moose Method metaclass for overridden methods
Core attributes shared by attribute metaclasses
Some overrides for Class::MOP::Object functionality
The Moose Role metaclass
A base class for role application
Combine two or more roles
Compose a role into a class
Compose a role into an instance
Compose a role into another role
The Moose attribute metaclass for Roles
An object to represent the set of roles
A Moose Method metaclass for Roles
A Moose metaclass for conflicting methods in 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
Type constraint for duck typing
Type constraint for enumerated values.
Type constraints which can take a parameter (ArrayRef)
Type constraints with a bound parameter (ArrayRef[Int])
registry for type constraints
Role/TypeConstraint parallel hierarchy
A union of Moose type constraints
The base object for Moose
The Moose Role
Utilities for working with Moose classes
Apply roles to any metaclass, as well as the object base class
Type constraint system for Moose
Test functions for Moose specific features
a pragma for installing and using Class::MOP metaclasses
syntactic sugar to make Moose one-liners easier
Provides
in lib/Moose/Exception/AccessorMustReadWrite.pm
in lib/Moose/Exception/AddParameterizableTypeTakesParameterizableType.pm
in lib/Moose/Exception/AddRoleTakesAMooseMetaRoleInstance.pm
in lib/Moose/Exception/AddRoleToARoleTakesAMooseMetaRole.pm
in lib/Moose/Exception/ApplyTakesABlessedInstance.pm
in lib/Moose/Exception/AttachToClassNeedsAClassMOPClassInstanceOrASubclass.pm
in lib/Moose/Exception/AttributeConflictInRoles.pm
in lib/Moose/Exception/AttributeConflictInSummation.pm
in lib/Moose/Exception/AttributeExtensionIsNotSupportedInRoles.pm
in lib/Moose/Exception/AttributeIsRequired.pm
in lib/Moose/Exception/AttributeMustBeAnClassMOPMixinAttributeCoreOrSubclass.pm
in lib/Moose/Exception/AttributeNamesDoNotMatch.pm
in lib/Moose/Exception/AttributeValueIsNotAnObject.pm
in lib/Moose/Exception/AttributeValueIsNotDefined.pm
in lib/Moose/Exception/AutoDeRefNeedsArrayRefOrHashRef.pm
in lib/Moose/Exception/BadOptionFormat.pm
in lib/Moose/Exception/BothBuilderAndDefaultAreNotAllowed.pm
in lib/Moose/Exception/BuilderDoesNotExist.pm
in lib/Moose/Exception/BuilderMethodNotSupportedForAttribute.pm
in lib/Moose/Exception/BuilderMethodNotSupportedForInlineAttribute.pm
in lib/Moose/Exception/BuilderMustBeAMethodName.pm
in lib/Moose/Exception/CallingMethodOnAnImmutableInstance.pm
in lib/Moose/Exception/CallingReadOnlyMethodOnAnImmutableInstance.pm
in lib/Moose/Exception/CanExtendOnlyClasses.pm
in lib/Moose/Exception/CanOnlyConsumeRole.pm
in lib/Moose/Exception/CanOnlyWrapBlessedCode.pm
in lib/Moose/Exception/CanReblessOnlyIntoASubclass.pm
in lib/Moose/Exception/CanReblessOnlyIntoASuperclass.pm
in lib/Moose/Exception/CannotAddAdditionalTypeCoercionsToUnion.pm
in lib/Moose/Exception/CannotAddAsAnAttributeToARole.pm
in lib/Moose/Exception/CannotApplyBaseClassRolesToRole.pm
in lib/Moose/Exception/CannotAssignValueToReadOnlyAccessor.pm
in lib/Moose/Exception/CannotAugmentIfLocalMethodPresent.pm
in lib/Moose/Exception/CannotAugmentNoSuperMethod.pm
in lib/Moose/Exception/CannotAutoDerefWithoutIsa.pm
in lib/Moose/Exception/CannotAutoDereferenceTypeConstraint.pm
in lib/Moose/Exception/CannotCalculateNativeType.pm
in lib/Moose/Exception/CannotCallAnAbstractBaseMethod.pm
in lib/Moose/Exception/CannotCallAnAbstractMethod.pm
in lib/Moose/Exception/CannotCoerceAWeakRef.pm
in lib/Moose/Exception/CannotCoerceAttributeWhichHasNoCoercion.pm
in lib/Moose/Exception/CannotCreateHigherOrderTypeWithoutATypeParameter.pm
in lib/Moose/Exception/CannotCreateMethodAliasLocalMethodIsPresent.pm
in lib/Moose/Exception/CannotCreateMethodAliasLocalMethodIsPresentInClass.pm
in lib/Moose/Exception/CannotDelegateLocalMethodIsPresent.pm
in lib/Moose/Exception/CannotDelegateWithoutIsa.pm
in lib/Moose/Exception/CannotFindDelegateMetaclass.pm
in lib/Moose/Exception/CannotFindType.pm
in lib/Moose/Exception/CannotFindTypeGivenToMatchOnType.pm
in lib/Moose/Exception/CannotFixMetaclassCompatibility.pm
in lib/Moose/Exception/CannotGenerateInlineConstraint.pm
in lib/Moose/Exception/CannotInitializeMooseMetaRoleComposite.pm
in lib/Moose/Exception/CannotInlineTypeConstraintCheck.pm
in lib/Moose/Exception/CannotLocatePackageInINC.pm
in lib/Moose/Exception/CannotMakeMetaclassCompatible.pm
in lib/Moose/Exception/CannotOverrideALocalMethod.pm
in lib/Moose/Exception/CannotOverrideBodyOfMetaMethods.pm
in lib/Moose/Exception/CannotOverrideLocalMethodIsPresent.pm
in lib/Moose/Exception/CannotOverrideNoSuperMethod.pm
in lib/Moose/Exception/CannotRegisterUnnamedTypeConstraint.pm
in lib/Moose/Exception/CannotUseLazyBuildAndDefaultSimultaneously.pm
in lib/Moose/Exception/CircularReferenceInAlso.pm
in lib/Moose/Exception/ClassDoesNotHaveInitMeta.pm
in lib/Moose/Exception/ClassDoesTheExcludedRole.pm
in lib/Moose/Exception/ClassNamesDoNotMatch.pm
in lib/Moose/Exception/CloneObjectExpectsAnInstanceOfMetaclass.pm
in lib/Moose/Exception/CodeBlockMustBeACodeRef.pm
in lib/Moose/Exception/CoercingWithoutCoercions.pm
in lib/Moose/Exception/CoercionAlreadyExists.pm
in lib/Moose/Exception/CoercionNeedsTypeConstraint.pm
in lib/Moose/Exception/ConflictDetectedInCheckRoleExclusions.pm
in lib/Moose/Exception/ConflictDetectedInCheckRoleExclusionsInToClass.pm
in lib/Moose/Exception/ConstructClassInstanceTakesPackageName.pm
in lib/Moose/Exception/CouldNotCreateMethod.pm
in lib/Moose/Exception/CouldNotCreateWriter.pm
in lib/Moose/Exception/CouldNotEvalConstructor.pm
in lib/Moose/Exception/CouldNotEvalDestructor.pm
in lib/Moose/Exception/CouldNotFindTypeConstraintToCoerceFrom.pm
in lib/Moose/Exception/CouldNotGenerateInlineAttributeMethod.pm
in lib/Moose/Exception/CouldNotLocateTypeConstraintForUnion.pm
in lib/Moose/Exception/CouldNotParseType.pm
in lib/Moose/Exception/CreateMOPClassTakesArrayRefOfAttributes.pm
in lib/Moose/Exception/CreateMOPClassTakesArrayRefOfSuperclasses.pm
in lib/Moose/Exception/CreateMOPClassTakesHashRefOfMethods.pm
in lib/Moose/Exception/CreateTakesArrayRefOfRoles.pm
in lib/Moose/Exception/CreateTakesHashRefOfAttributes.pm
in lib/Moose/Exception/CreateTakesHashRefOfMethods.pm
in lib/Moose/Exception/DefaultToMatchOnTypeMustBeCodeRef.pm
in lib/Moose/Exception/DelegationToAClassWhichIsNotLoaded.pm
in lib/Moose/Exception/DelegationToARoleWhichIsNotLoaded.pm
in lib/Moose/Exception/DelegationToATypeWhichIsNotAClass.pm
in lib/Moose/Exception/DoesRequiresRoleName.pm
in lib/Moose/Exception/EnumCalledWithAnArrayRefAndAdditionalArgs.pm
in lib/Moose/Exception/EnumValuesMustBeString.pm
in lib/Moose/Exception/ExtendsMissingArgs.pm
in lib/Moose/Exception/HandlesMustBeAHashRef.pm
in lib/Moose/Exception/IllegalInheritedOptions.pm
in lib/Moose/Exception/IllegalMethodTypeToAddMethodModifier.pm
in lib/Moose/Exception/IncompatibleMetaclassOfSuperclass.pm
in lib/Moose/Exception/InitMetaRequiresClass.pm
in lib/Moose/Exception/InitializeTakesUnBlessedPackageName.pm
in lib/Moose/Exception/InstanceBlessedIntoWrongClass.pm
in lib/Moose/Exception/InstanceMustBeABlessedReference.pm
in lib/Moose/Exception/InvalidArgPassedToMooseUtilMetaRole.pm
in lib/Moose/Exception/InvalidArgumentToMethod.pm
in lib/Moose/Exception/InvalidArgumentsToTraitAliases.pm
in lib/Moose/Exception/InvalidBaseTypeGivenToCreateParameterizedTypeConstraint.pm
in lib/Moose/Exception/InvalidHandleValue.pm
in lib/Moose/Exception/InvalidHasProvidedInARole.pm
in lib/Moose/Exception/InvalidNameForType.pm
in lib/Moose/Exception/InvalidRoleApplication.pm
in lib/Moose/Exception/InvalidTypeConstraint.pm
in lib/Moose/Exception/InvalidTypeGivenToCreateParameterizedTypeConstraint.pm
in lib/Moose/Exception/InvalidValueForIs.pm
in lib/Moose/Exception/IsaDoesNotDoTheRole.pm
in lib/Moose/Exception/IsaLacksDoesMethod.pm
in lib/Moose/Exception/LazyAttributeNeedsADefault.pm
in lib/Moose/Exception/Legacy.pm
in lib/Moose/Exception/MOPAttributeNewNeedsAttributeName.pm
in lib/Moose/Exception/MatchActionMustBeACodeRef.pm
in lib/Moose/Exception/MessageParameterMustBeCodeRef.pm
in lib/Moose/Exception/MetaclassIsAClassNotASubclassOfGivenMetaclass.pm
in lib/Moose/Exception/MetaclassIsARoleNotASubclassOfGivenMetaclass.pm
in lib/Moose/Exception/MetaclassIsNotASubclassOfGivenMetaclass.pm
in lib/Moose/Exception/MetaclassMustBeASubclassOfMooseMetaClass.pm
in lib/Moose/Exception/MetaclassMustBeASubclassOfMooseMetaRole.pm
in lib/Moose/Exception/MetaclassMustBeDerivedFromClassMOPClass.pm
in lib/Moose/Exception/MetaclassNotLoaded.pm
in lib/Moose/Exception/MetaclassTypeIncompatible.pm
in lib/Moose/Exception/MethodExpectedAMetaclassObject.pm
in lib/Moose/Exception/MethodExpectsFewerArgs.pm
in lib/Moose/Exception/MethodExpectsMoreArgs.pm
in lib/Moose/Exception/MethodModifierNeedsMethodName.pm
in lib/Moose/Exception/MethodNameConflictInRoles.pm
in lib/Moose/Exception/MethodNameNotFoundInInheritanceHierarchy.pm
in lib/Moose/Exception/MethodNameNotGiven.pm
in lib/Moose/Exception/MustDefineAMethodName.pm
in lib/Moose/Exception/MustDefineAnAttributeName.pm
in lib/Moose/Exception/MustHaveAtLeastOneValueToEnumerate.pm
in lib/Moose/Exception/MustPassAHashOfOptions.pm
in lib/Moose/Exception/MustPassAMooseMetaRoleInstanceOrSubclass.pm
in lib/Moose/Exception/MustPassAPackageNameOrAnExistingClassMOPPackageInstance.pm
in lib/Moose/Exception/MustPassEvenNumberOfArguments.pm
in lib/Moose/Exception/MustPassEvenNumberOfAttributeOptions.pm
in lib/Moose/Exception/MustProvideANameForTheAttribute.pm
in lib/Moose/Exception/MustSpecifyAtleastOneMethod.pm
in lib/Moose/Exception/MustSpecifyAtleastOneRole.pm
in lib/Moose/Exception/MustSpecifyAtleastOneRoleToApplicant.pm
in lib/Moose/Exception/MustSupplyAClassMOPAttributeInstance.pm
in lib/Moose/Exception/MustSupplyADelegateToMethod.pm
in lib/Moose/Exception/MustSupplyAMetaclass.pm
in lib/Moose/Exception/MustSupplyAMooseMetaAttributeInstance.pm
in lib/Moose/Exception/MustSupplyAnAccessorTypeToConstructWith.pm
in lib/Moose/Exception/MustSupplyAnAttributeToConstructWith.pm
in lib/Moose/Exception/MustSupplyArrayRefAsCurriedArguments.pm
in lib/Moose/Exception/MustSupplyPackageNameAndName.pm
in lib/Moose/Exception/NeedsTypeConstraintUnionForTypeCoercionUnion.pm
in lib/Moose/Exception/NeitherAttributeNorAttributeNameIsGiven.pm
in lib/Moose/Exception/NeitherClassNorClassNameIsGiven.pm
in lib/Moose/Exception/NeitherRoleNorRoleNameIsGiven.pm
in lib/Moose/Exception/NeitherTypeNorTypeNameIsGiven.pm
in lib/Moose/Exception/NoAttributeFoundInSuperClass.pm
in lib/Moose/Exception/NoBodyToInitializeInAnAbstractBaseClass.pm
in lib/Moose/Exception/NoCasesMatched.pm
in lib/Moose/Exception/NoConstraintCheckForTypeConstraint.pm
in lib/Moose/Exception/NoDestructorClassSpecified.pm
in lib/Moose/Exception/NoImmutableTraitSpecifiedForClass.pm
in lib/Moose/Exception/NoParentGivenToSubtype.pm
in lib/Moose/Exception/OnlyInstancesCanBeCloned.pm
in lib/Moose/Exception/OperatorIsRequired.pm
in lib/Moose/Exception/OverloadConflictInSummation.pm
in lib/Moose/Exception/OverloadFallbackConflictInComposition.pm
in lib/Moose/Exception/OverrideConflictInComposition.pm
in lib/Moose/Exception/OverrideConflictInSummation.pm
in lib/Moose/Exception/PackageDoesNotUseMooseExporter.pm
in lib/Moose/Exception/PackageNameAndNameParamsNotGivenToWrap.pm
in lib/Moose/Exception/PackagesAndModulesAreNotCachable.pm
in lib/Moose/Exception/ParameterIsNotSubtypeOfParent.pm
in lib/Moose/Exception/ReferencesAreNotAllowedAsDefault.pm
in lib/Moose/Exception/RequiredAttributeLacksInitialization.pm
in lib/Moose/Exception/RequiredAttributeNeedsADefault.pm
in lib/Moose/Exception/RequiredMethodsImportedByClass.pm
in lib/Moose/Exception/RequiredMethodsNotImplementedByClass.pm
in lib/Moose/Exception/Role/Attribute.pm
in lib/Moose/Exception/Role/AttributeName.pm
in lib/Moose/Exception/Role/Class.pm
in lib/Moose/Exception/Role/EitherAttributeOrAttributeName.pm
in lib/Moose/Exception/Role/Instance.pm
in lib/Moose/Exception/Role/InstanceClass.pm
in lib/Moose/Exception/Role/InvalidAttributeOptions.pm
in lib/Moose/Exception/Role/Method.pm
in lib/Moose/Exception/Role/ParamsHash.pm
in lib/Moose/Exception/Role/Role.pm
in lib/Moose/Exception/Role/RoleForCreate.pm
in lib/Moose/Exception/Role/RoleForCreateMOPClass.pm
in lib/Moose/Exception/Role/TypeConstraint.pm
in lib/Moose/Exception/RoleDoesTheExcludedRole.pm
in lib/Moose/Exception/RoleExclusionConflict.pm
in lib/Moose/Exception/RoleNameRequired.pm
in lib/Moose/Exception/RoleNameRequiredForMooseMetaRole.pm
in lib/Moose/Exception/RolesDoNotSupportAugment.pm
in lib/Moose/Exception/RolesDoNotSupportExtends.pm
in lib/Moose/Exception/RolesDoNotSupportInner.pm
in lib/Moose/Exception/RolesDoNotSupportRegexReferencesForMethodModifiers.pm
in lib/Moose/Exception/RolesInCreateTakesAnArrayRef.pm
in lib/Moose/Exception/RolesListMustBeInstancesOfMooseMetaRole.pm
in lib/Moose/Exception/SingleParamsToNewMustBeHashRef.pm
in lib/Moose/Exception/TriggerMustBeACodeRef.pm
in lib/Moose/Exception/TypeConstraintCannotBeUsedForAParameterizableType.pm
in lib/Moose/Exception/TypeConstraintIsAlreadyCreated.pm
in lib/Moose/Exception/TypeParameterMustBeMooseMetaType.pm
in lib/Moose/Exception/UnableToCanonicalizeHandles.pm
in lib/Moose/Exception/UnableToCanonicalizeNonRolePackage.pm
in lib/Moose/Exception/UnableToRecognizeDelegateMetaclass.pm
in lib/Moose/Exception/UndefinedHashKeysPassedToMethod.pm
in lib/Moose/Exception/UnionCalledWithAnArrayRefAndAdditionalArgs.pm
in lib/Moose/Exception/UnionTakesAtleastTwoTypeNames.pm
in lib/Moose/Exception/ValidationFailedForInlineTypeConstraint.pm
in lib/Moose/Exception/ValidationFailedForTypeConstraint.pm
in lib/Moose/Exception/WrapTakesACodeRefToBless.pm
in lib/Moose/Exception/WrongTypeConstraintGiven.pm
in lib/Moose/Meta/Attribute.pm