{% set name = "perl-moose" %}
{% set version = "2.2202" %}
{% set sha256 = "1667c18786269b8881f9d862bd531d89c7418422ec2487e5e561f991d030dc71" %}

package:
  name: {{ name }}
  version: {{ version }}

source:
  url: https://cpan.metacpan.org/authors/id/E/ET/ETHER/Moose-2.2202.tar.gz
  sha256: {{ sha256 }}

build:
  number: 0
  run_exports:
    weak:
      - {{ name }} ={{ version }}

requirements:
  build:
    - {{ compiler('c') }}
    - make
  host:
    - perl
    - perl-try-tiny
    - perl-class-load-xs
    - perl-dist-checkconflicts
    - perl-module-runtime
    - perl-sub-exporter
    - perl-class-load
    - perl-devel-globaldestruction
    - perl-package-deprecationmanager
    - perl-params-util
    - perl-module-runtime-conflicts
    - perl-package-stash-xs
    - perl-devel-stacktrace
    - perl-mro-compat
    - perl-data-optlist
    - perl-devel-overloadinfo
    - perl-eval-closure
    - perl-package-stash
    - perl-test-fatal
    - perl-test-requires
    - perl-cpan-meta-check
  run:
    - perl
    - perl-try-tiny
    - perl-module-runtime-conflicts
    - perl-package-stash-xs
    - perl-class-load-xs
    - perl-devel-stacktrace
    - perl-mro-compat
    - perl-data-optlist
    - perl-module-runtime
    - perl-dist-checkconflicts
    - perl-sub-exporter
    - perl-class-load
    - perl-devel-overloadinfo
    - perl-eval-closure
    - perl-devel-globaldestruction
    - perl-package-stash
    - perl-params-util
    - perl-package-deprecationmanager

test:
  # Perl 'use' tests
  imports:
    - Moose
    - Moose::Exception::AccessorMustReadWrite
    - Moose::Exception::AddParameterizableTypeTakesParameterizableType
    - Moose::Exception::AddRoleTakesAMooseMetaRoleInstance
    - Moose::Exception::AddRoleToARoleTakesAMooseMetaRole
    - Moose::Exception::ApplyTakesABlessedInstance
    - Moose::Exception::AttachToClassNeedsAClassMOPClassInstanceOrASubclass
    - Moose::Exception::AttributeConflictInRoles
    - Moose::Exception::AttributeConflictInSummation
    - Moose::Exception::AttributeExtensionIsNotSupportedInRoles
    - Moose::Exception::AttributeIsRequired
    - Moose::Exception::AttributeMustBeAnClassMOPMixinAttributeCoreOrSubclass
    - Moose::Exception::AttributeNamesDoNotMatch
    - Moose::Exception::AttributeValueIsNotAnObject
    - Moose::Exception::AttributeValueIsNotDefined
    - Moose::Exception::AutoDeRefNeedsArrayRefOrHashRef
    - Moose::Exception::BadOptionFormat
    - Moose::Exception::BothBuilderAndDefaultAreNotAllowed
    - Moose::Exception::BuilderDoesNotExist
    - Moose::Exception::BuilderMethodNotSupportedForAttribute
    - Moose::Exception::BuilderMethodNotSupportedForInlineAttribute
    - Moose::Exception::BuilderMustBeAMethodName
    - Moose::Exception::CallingMethodOnAnImmutableInstance
    - Moose::Exception::CallingReadOnlyMethodOnAnImmutableInstance
    - Moose::Exception::CanExtendOnlyClasses
    - Moose::Exception::CanOnlyConsumeRole
    - Moose::Exception::CanOnlyWrapBlessedCode
    - Moose::Exception::CanReblessOnlyIntoASubclass
    - Moose::Exception::CanReblessOnlyIntoASuperclass
    - Moose::Exception::CannotAddAdditionalTypeCoercionsToUnion
    - Moose::Exception::CannotAddAsAnAttributeToARole
    - Moose::Exception::CannotApplyBaseClassRolesToRole
    - Moose::Exception::CannotAssignValueToReadOnlyAccessor
    - Moose::Exception::CannotAugmentIfLocalMethodPresent
    - Moose::Exception::CannotAugmentNoSuperMethod
    - Moose::Exception::CannotAutoDerefWithoutIsa
    - Moose::Exception::CannotAutoDereferenceTypeConstraint
    - Moose::Exception::CannotCalculateNativeType
    - Moose::Exception::CannotCallAnAbstractBaseMethod
    - Moose::Exception::CannotCallAnAbstractMethod
    - Moose::Exception::CannotCoerceAWeakRef
    - Moose::Exception::CannotCoerceAttributeWhichHasNoCoercion
    - Moose::Exception::CannotCreateHigherOrderTypeWithoutATypeParameter
    - Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresent
    - Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresentInClass
    - Moose::Exception::CannotDelegateLocalMethodIsPresent
    - Moose::Exception::CannotDelegateWithoutIsa
    - Moose::Exception::CannotFindDelegateMetaclass
    - Moose::Exception::CannotFindType
    - Moose::Exception::CannotFindTypeGivenToMatchOnType
    - Moose::Exception::CannotFixMetaclassCompatibility
    - Moose::Exception::CannotGenerateInlineConstraint
    - Moose::Exception::CannotInitializeMooseMetaRoleComposite
    - Moose::Exception::CannotInlineTypeConstraintCheck
    - Moose::Exception::CannotLocatePackageInINC
    - Moose::Exception::CannotMakeMetaclassCompatible
    - Moose::Exception::CannotOverrideALocalMethod
    - Moose::Exception::CannotOverrideBodyOfMetaMethods
    - Moose::Exception::CannotOverrideLocalMethodIsPresent
    - Moose::Exception::CannotOverrideNoSuperMethod
    - Moose::Exception::CannotRegisterUnnamedTypeConstraint
    - Moose::Exception::CannotUseLazyBuildAndDefaultSimultaneously
    - Moose::Exception::CircularReferenceInAlso
    - Moose::Exception::ClassDoesNotHaveInitMeta
    - Moose::Exception::ClassDoesTheExcludedRole
    - Moose::Exception::ClassNamesDoNotMatch
    - Moose::Exception::CloneObjectExpectsAnInstanceOfMetaclass
    - Moose::Exception::CodeBlockMustBeACodeRef
    - Moose::Exception::CoercingWithoutCoercions
    - Moose::Exception::CoercionAlreadyExists
    - Moose::Exception::CoercionNeedsTypeConstraint
    - Moose::Exception::ConflictDetectedInCheckRoleExclusions
    - Moose::Exception::ConflictDetectedInCheckRoleExclusionsInToClass
    - Moose::Exception::ConstructClassInstanceTakesPackageName
    - Moose::Exception::CouldNotCreateMethod
    - Moose::Exception::CouldNotCreateWriter
    - Moose::Exception::CouldNotEvalConstructor
    - Moose::Exception::CouldNotEvalDestructor
    - Moose::Exception::CouldNotFindTypeConstraintToCoerceFrom
    - Moose::Exception::CouldNotGenerateInlineAttributeMethod
    - Moose::Exception::CouldNotLocateTypeConstraintForUnion
    - Moose::Exception::CouldNotParseType
    - Moose::Exception::CreateMOPClassTakesArrayRefOfAttributes
    - Moose::Exception::CreateMOPClassTakesArrayRefOfSuperclasses
    - Moose::Exception::CreateMOPClassTakesHashRefOfMethods
    - Moose::Exception::CreateTakesArrayRefOfRoles
    - Moose::Exception::CreateTakesHashRefOfAttributes
    - Moose::Exception::CreateTakesHashRefOfMethods
    - Moose::Exception::DefaultToMatchOnTypeMustBeCodeRef
    - Moose::Exception::DelegationToAClassWhichIsNotLoaded
    - Moose::Exception::DelegationToARoleWhichIsNotLoaded
    - Moose::Exception::DelegationToATypeWhichIsNotAClass
    - Moose::Exception::DoesRequiresRoleName
    - Moose::Exception::EnumCalledWithAnArrayRefAndAdditionalArgs
    - Moose::Exception::EnumValuesMustBeString
    - Moose::Exception::ExtendsMissingArgs
    - Moose::Exception::HandlesMustBeAHashRef
    - Moose::Exception::IllegalInheritedOptions
    - Moose::Exception::IllegalMethodTypeToAddMethodModifier
    - Moose::Exception::IncompatibleMetaclassOfSuperclass
    - Moose::Exception::InitMetaRequiresClass
    - Moose::Exception::InitializeTakesUnBlessedPackageName
    - Moose::Exception::InstanceBlessedIntoWrongClass
    - Moose::Exception::InstanceMustBeABlessedReference
    - Moose::Exception::InvalidArgPassedToMooseUtilMetaRole
    - Moose::Exception::InvalidArgumentToMethod
    - Moose::Exception::InvalidArgumentsToTraitAliases
    - Moose::Exception::InvalidBaseTypeGivenToCreateParameterizedTypeConstraint
    - Moose::Exception::InvalidHandleValue
    - Moose::Exception::InvalidHasProvidedInARole
    - Moose::Exception::InvalidNameForType
    - Moose::Exception::InvalidOverloadOperator
    - Moose::Exception::InvalidRoleApplication
    - Moose::Exception::InvalidTypeConstraint
    - Moose::Exception::InvalidTypeGivenToCreateParameterizedTypeConstraint
    - Moose::Exception::InvalidValueForIs
    - Moose::Exception::IsaDoesNotDoTheRole
    - Moose::Exception::IsaLacksDoesMethod
    - Moose::Exception::LazyAttributeNeedsADefault
    - Moose::Exception::Legacy
    - Moose::Exception::MOPAttributeNewNeedsAttributeName
    - Moose::Exception::MatchActionMustBeACodeRef
    - Moose::Exception::MessageParameterMustBeCodeRef
    - Moose::Exception::MetaclassIsAClassNotASubclassOfGivenMetaclass
    - Moose::Exception::MetaclassIsARoleNotASubclassOfGivenMetaclass
    - Moose::Exception::MetaclassIsNotASubclassOfGivenMetaclass
    - Moose::Exception::MetaclassMustBeASubclassOfMooseMetaClass
    - Moose::Exception::MetaclassMustBeASubclassOfMooseMetaRole
    - Moose::Exception::MetaclassMustBeDerivedFromClassMOPClass
    - Moose::Exception::MetaclassNotLoaded
    - Moose::Exception::MetaclassTypeIncompatible
    - Moose::Exception::MethodExpectedAMetaclassObject
    - Moose::Exception::MethodExpectsFewerArgs
    - Moose::Exception::MethodExpectsMoreArgs
    - Moose::Exception::MethodModifierNeedsMethodName
    - Moose::Exception::MethodNameConflictInRoles
    - Moose::Exception::MethodNameNotFoundInInheritanceHierarchy
    - Moose::Exception::MethodNameNotGiven
    - Moose::Exception::MustDefineAMethodName
    - Moose::Exception::MustDefineAnAttributeName
    - Moose::Exception::MustDefineAnOverloadOperator
    - Moose::Exception::MustHaveAtLeastOneValueToEnumerate
    - Moose::Exception::MustPassAHashOfOptions
    - Moose::Exception::MustPassAMooseMetaRoleInstanceOrSubclass
    - Moose::Exception::MustPassAPackageNameOrAnExistingClassMOPPackageInstance
    - Moose::Exception::MustPassEvenNumberOfArguments
    - Moose::Exception::MustPassEvenNumberOfAttributeOptions
    - Moose::Exception::MustProvideANameForTheAttribute
    - Moose::Exception::MustSpecifyAtleastOneMethod
    - Moose::Exception::MustSpecifyAtleastOneRole
    - Moose::Exception::MustSpecifyAtleastOneRoleToApplicant
    - Moose::Exception::MustSupplyAClassMOPAttributeInstance
    - Moose::Exception::MustSupplyADelegateToMethod
    - Moose::Exception::MustSupplyAMetaclass
    - Moose::Exception::MustSupplyAMooseMetaAttributeInstance
    - Moose::Exception::MustSupplyAnAccessorTypeToConstructWith
    - Moose::Exception::MustSupplyAnAttributeToConstructWith
    - Moose::Exception::MustSupplyArrayRefAsCurriedArguments
    - Moose::Exception::MustSupplyPackageNameAndName
    - Moose::Exception::NeedsTypeConstraintUnionForTypeCoercionUnion
    - Moose::Exception::NeitherAttributeNorAttributeNameIsGiven
    - Moose::Exception::NeitherClassNorClassNameIsGiven
    - Moose::Exception::NeitherRoleNorRoleNameIsGiven
    - Moose::Exception::NeitherTypeNorTypeNameIsGiven
    - Moose::Exception::NoAttributeFoundInSuperClass
    - Moose::Exception::NoBodyToInitializeInAnAbstractBaseClass
    - Moose::Exception::NoCasesMatched
    - Moose::Exception::NoConstraintCheckForTypeConstraint
    - Moose::Exception::NoDestructorClassSpecified
    - Moose::Exception::NoImmutableTraitSpecifiedForClass
    - Moose::Exception::NoParentGivenToSubtype
    - Moose::Exception::OnlyInstancesCanBeCloned
    - Moose::Exception::OperatorIsRequired
    - Moose::Exception::OverloadConflictInSummation
    - Moose::Exception::OverloadRequiresAMetaClass
    - Moose::Exception::OverloadRequiresAMetaMethod
    - Moose::Exception::OverloadRequiresAMetaOverload
    - Moose::Exception::OverloadRequiresAMethodNameOrCoderef
    - Moose::Exception::OverloadRequiresAnOperator
    - Moose::Exception::OverloadRequiresNamesForCoderef
    - Moose::Exception::OverrideConflictInComposition
    - Moose::Exception::OverrideConflictInSummation
    - Moose::Exception::PackageDoesNotUseMooseExporter
    - Moose::Exception::PackageNameAndNameParamsNotGivenToWrap
    - Moose::Exception::PackagesAndModulesAreNotCachable
    - Moose::Exception::ParameterIsNotSubtypeOfParent
    - Moose::Exception::ReferencesAreNotAllowedAsDefault
    - Moose::Exception::RequiredAttributeLacksInitialization
    - Moose::Exception::RequiredAttributeNeedsADefault
    - Moose::Exception::RequiredMethodsImportedByClass
    - Moose::Exception::RequiredMethodsNotImplementedByClass
    - Moose::Exception::Role::Attribute
    - Moose::Exception::Role::AttributeName
    - Moose::Exception::Role::Class
    - Moose::Exception::Role::EitherAttributeOrAttributeName
    - Moose::Exception::Role::Instance
    - Moose::Exception::Role::InstanceClass
    - Moose::Exception::Role::InvalidAttributeOptions
    - Moose::Exception::Role::Method
    - Moose::Exception::Role::ParamsHash
    - Moose::Exception::Role::Role
    - Moose::Exception::Role::RoleForCreate
    - Moose::Exception::Role::RoleForCreateMOPClass
    - Moose::Exception::Role::TypeConstraint
    - Moose::Exception::RoleDoesTheExcludedRole
    - Moose::Exception::RoleExclusionConflict
    - Moose::Exception::RoleNameRequired
    - Moose::Exception::RoleNameRequiredForMooseMetaRole
    - Moose::Exception::RolesDoNotSupportAugment
    - Moose::Exception::RolesDoNotSupportExtends
    - Moose::Exception::RolesDoNotSupportInner
    - Moose::Exception::RolesDoNotSupportRegexReferencesForMethodModifiers
    - Moose::Exception::RolesInCreateTakesAnArrayRef
    - Moose::Exception::RolesListMustBeInstancesOfMooseMetaRole
    - Moose::Exception::SingleParamsToNewMustBeHashRef
    - Moose::Exception::TriggerMustBeACodeRef
    - Moose::Exception::TypeConstraintCannotBeUsedForAParameterizableType
    - Moose::Exception::TypeConstraintIsAlreadyCreated
    - Moose::Exception::TypeParameterMustBeMooseMetaType
    - Moose::Exception::UnableToCanonicalizeHandles
    - Moose::Exception::UnableToCanonicalizeNonRolePackage
    - Moose::Exception::UnableToRecognizeDelegateMetaclass
    - Moose::Exception::UndefinedHashKeysPassedToMethod
    - Moose::Exception::UnionCalledWithAnArrayRefAndAdditionalArgs
    - Moose::Exception::UnionTakesAtleastTwoTypeNames
    - Moose::Exception::ValidationFailedForInlineTypeConstraint
    - Moose::Exception::ValidationFailedForTypeConstraint
    - Moose::Exception::WrapTakesACodeRefToBless
    - Moose::Exception::WrongTypeConstraintGiven
    - Moose::Exporter
    - Moose::Meta::Attribute
    - Moose::Meta::Attribute::Native
    - Moose::Meta::Attribute::Native::Trait
    - Moose::Meta::Attribute::Native::Trait::Array
    - Moose::Meta::Attribute::Native::Trait::Bool
    - Moose::Meta::Attribute::Native::Trait::Code
    - Moose::Meta::Attribute::Native::Trait::Counter
    - Moose::Meta::Attribute::Native::Trait::Hash
    - Moose::Meta::Attribute::Native::Trait::Number
    - Moose::Meta::Attribute::Native::Trait::String
    - Moose::Meta::Class
    - Moose::Meta::Class::Immutable::Trait
    - Moose::Meta::Instance
    - Moose::Meta::Method
    - Moose::Meta::Method::Accessor
    - Moose::Meta::Method::Accessor::Native
    - Moose::Meta::Method::Accessor::Native::Array
    - Moose::Meta::Method::Accessor::Native::Array::Writer
    - Moose::Meta::Method::Accessor::Native::Array::accessor
    - Moose::Meta::Method::Accessor::Native::Array::clear
    - Moose::Meta::Method::Accessor::Native::Array::count
    - Moose::Meta::Method::Accessor::Native::Array::delete
    - Moose::Meta::Method::Accessor::Native::Array::elements
    - Moose::Meta::Method::Accessor::Native::Array::first
    - Moose::Meta::Method::Accessor::Native::Array::first_index
    - Moose::Meta::Method::Accessor::Native::Array::get
    - Moose::Meta::Method::Accessor::Native::Array::grep
    - Moose::Meta::Method::Accessor::Native::Array::insert
    - Moose::Meta::Method::Accessor::Native::Array::is_empty
    - Moose::Meta::Method::Accessor::Native::Array::join
    - Moose::Meta::Method::Accessor::Native::Array::map
    - Moose::Meta::Method::Accessor::Native::Array::natatime
    - Moose::Meta::Method::Accessor::Native::Array::pop
    - Moose::Meta::Method::Accessor::Native::Array::push
    - Moose::Meta::Method::Accessor::Native::Array::reduce
    - Moose::Meta::Method::Accessor::Native::Array::set
    - Moose::Meta::Method::Accessor::Native::Array::shallow_clone
    - Moose::Meta::Method::Accessor::Native::Array::shift
    - Moose::Meta::Method::Accessor::Native::Array::shuffle
    - Moose::Meta::Method::Accessor::Native::Array::sort
    - Moose::Meta::Method::Accessor::Native::Array::sort_in_place
    - Moose::Meta::Method::Accessor::Native::Array::splice
    - Moose::Meta::Method::Accessor::Native::Array::uniq
    - Moose::Meta::Method::Accessor::Native::Array::unshift
    - Moose::Meta::Method::Accessor::Native::Bool::not
    - Moose::Meta::Method::Accessor::Native::Bool::set
    - Moose::Meta::Method::Accessor::Native::Bool::toggle
    - Moose::Meta::Method::Accessor::Native::Bool::unset
    - Moose::Meta::Method::Accessor::Native::Code::execute
    - Moose::Meta::Method::Accessor::Native::Code::execute_method
    - Moose::Meta::Method::Accessor::Native::Collection
    - Moose::Meta::Method::Accessor::Native::Counter::Writer
    - Moose::Meta::Method::Accessor::Native::Counter::dec
    - Moose::Meta::Method::Accessor::Native::Counter::inc
    - Moose::Meta::Method::Accessor::Native::Counter::reset
    - Moose::Meta::Method::Accessor::Native::Counter::set
    - Moose::Meta::Method::Accessor::Native::Hash
    - Moose::Meta::Method::Accessor::Native::Hash::Writer
    - Moose::Meta::Method::Accessor::Native::Hash::accessor
    - Moose::Meta::Method::Accessor::Native::Hash::clear
    - Moose::Meta::Method::Accessor::Native::Hash::count
    - Moose::Meta::Method::Accessor::Native::Hash::defined
    - Moose::Meta::Method::Accessor::Native::Hash::delete
    - Moose::Meta::Method::Accessor::Native::Hash::elements
    - Moose::Meta::Method::Accessor::Native::Hash::exists
    - Moose::Meta::Method::Accessor::Native::Hash::get
    - Moose::Meta::Method::Accessor::Native::Hash::is_empty
    - Moose::Meta::Method::Accessor::Native::Hash::keys
    - Moose::Meta::Method::Accessor::Native::Hash::kv
    - Moose::Meta::Method::Accessor::Native::Hash::set
    - Moose::Meta::Method::Accessor::Native::Hash::shallow_clone
    - Moose::Meta::Method::Accessor::Native::Hash::values
    - Moose::Meta::Method::Accessor::Native::Number::abs
    - Moose::Meta::Method::Accessor::Native::Number::add
    - Moose::Meta::Method::Accessor::Native::Number::div
    - Moose::Meta::Method::Accessor::Native::Number::mod
    - Moose::Meta::Method::Accessor::Native::Number::mul
    - Moose::Meta::Method::Accessor::Native::Number::set
    - Moose::Meta::Method::Accessor::Native::Number::sub
    - Moose::Meta::Method::Accessor::Native::Reader
    - Moose::Meta::Method::Accessor::Native::String::append
    - Moose::Meta::Method::Accessor::Native::String::chomp
    - Moose::Meta::Method::Accessor::Native::String::chop
    - Moose::Meta::Method::Accessor::Native::String::clear
    - Moose::Meta::Method::Accessor::Native::String::inc
    - Moose::Meta::Method::Accessor::Native::String::length
    - Moose::Meta::Method::Accessor::Native::String::match
    - Moose::Meta::Method::Accessor::Native::String::prepend
    - Moose::Meta::Method::Accessor::Native::String::replace
    - Moose::Meta::Method::Accessor::Native::String::substr
    - Moose::Meta::Method::Accessor::Native::Writer
    - Moose::Meta::Method::Augmented
    - Moose::Meta::Method::Constructor
    - Moose::Meta::Method::Delegation
    - Moose::Meta::Method::Destructor
    - Moose::Meta::Method::Meta
    - Moose::Meta::Method::Overridden
    - Moose::Meta::Mixin::AttributeCore
    - Moose::Meta::Object::Trait
    - Moose::Meta::Role
    - Moose::Meta::Role::Application
    - Moose::Meta::Role::Application::RoleSummation
    - Moose::Meta::Role::Application::ToClass
    - Moose::Meta::Role::Application::ToInstance
    - Moose::Meta::Role::Application::ToRole
    - Moose::Meta::Role::Attribute
    - Moose::Meta::Role::Composite
    - Moose::Meta::Role::Method
    - Moose::Meta::Role::Method::Conflicting
    - Moose::Meta::Role::Method::Required
    - Moose::Meta::TypeCoercion
    - Moose::Meta::TypeCoercion::Union
    - Moose::Meta::TypeConstraint
    - Moose::Meta::TypeConstraint::Class
    - Moose::Meta::TypeConstraint::DuckType
    - Moose::Meta::TypeConstraint::Enum
    - Moose::Meta::TypeConstraint::Parameterizable
    - Moose::Meta::TypeConstraint::Parameterized
    - Moose::Meta::TypeConstraint::Registry
    - Moose::Meta::TypeConstraint::Role
    - Moose::Meta::TypeConstraint::Union
    - Moose::Object
    - Moose::Util
    - Moose::Util::MetaRole
    - Moose::Util::TypeConstraints
    - Moose::Util::TypeConstraints::Builtins

about:
  home: http://moose.perl.org/
  license: perl_5
  summary: 'A postmodern object system for Perl 5'
