Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mouse::spec(3pm) [debian man page]

Mouse::Spec(3pm)					User Contributed Perl Documentation					  Mouse::Spec(3pm)

NAME
Mouse::Spec - To what extent Mouse is compatible with Moose VERSION
This document describes Mouse version 0.99 SYNOPSIS
use Mouse::Spec; printf "Mouse/%s is compatible with Moose/%s ", Mouse::Spec->MouseVersion, Mouse::Spec->MooseVersion; DESCRIPTION
Mouse is a subset of Moose. This document describes to what extend Mouse is compatible (and incompatible) with Moose. Compatibility with Moose Sugary APIs The sugary APIs are highly compatible with Moose. Methods which have the same name as Moose's are expected to be compatible with Moose's. Meta object protocols Meta object protocols are a subset of the counterpart of Moose. Their methods which have the same name as Moose's are expected to be compatible with Moose's. Feel free to use these methods even if they are not documented. However, there are differences between Moose's MOP and Mouse's. For example, meta object protocols in Mouse have no attributes by default, so "$metaclass->meta->make_immutable()" will not work as you expect. Don not make metaclasses immutable. Mouse::Meta::Instance Meta instance mechanism is not implemented, so you cannot change the reftype of Mouse objects in the same way as Moose. Role exclusion Role exclusion, "exclude()", is not implemented. -metaclass in Mouse::Exporter "use Mouse -metaclass => ..." are not implemented. Use "use Mouse -traits => ..." instead. Mouse::Meta::Attribute::Native Native traits are not supported directly, but "MouseX::NativeTraits" is available on CPAN. Once you have installed it, you can use it as the same way in Moose. That is, native traits are automatically loaded by Mouse. See MouseX::NativeTraits for details. Notes about Moose::Cookbook Many recipes in Moose::Cookbook fit Mouse, including: o Moose::Cookbook::Basics::Recipe1 - The (always classic) Point example o Moose::Cookbook::Basics::Recipe2 - A simple BankAccount example o Moose::Cookbook::Basics::Recipe3 - A lazy BinaryTree example o Moose::Cookbook::Basics::Recipe4 - Subtypes, and modeling a simple Company class hierarchy o Moose::Cookbook::Basics::Recipe5 - More subtypes, coercion in a Request class o Moose::Cookbook::Basics::Recipe6 - The augment/inner example o Moose::Cookbook::Basics::Recipe7 - Making Moose fast with immutable o Moose::Cookbook::Basics::Recipe8 - Builder methods and lazy_build o Moose::Cookbook::Basics::Recipe9 - Operator overloading, subtypes, and coercion o Moose::Cookbook::Basics::Recipe10 - Using BUILDARGS and BUILD to hook into object construction o Moose::Cookbook::Roles::Recipe1 - The Moose::Role example o Moose::Cookbook::Roles::Recipe2 - Advanced Role Composition - method exclusion and aliasing o Moose::Cookbook::Roles::Recipe3 - Applying a role to an object instance o Moose::Cookbook::Meta::Recipe2 - A meta-attribute, attributes with labels o Moose::Cookbook::Meta::Recipe3 - Labels implemented via attribute traits o Moose::Cookbook::Extending::Recipe3 - Providing an alternate base object class SEE ALSO
Mouse Moose Moose::Manual Moose::Cookbook perl v5.14.2 2012-06-30 Mouse::Spec(3pm)

Check Out this Related Man Page

Moose::Cookbook::Legacy::Table_ClassMetaclass(3)	User Contributed Perl Documentation	  Moose::Cookbook::Legacy::Table_ClassMetaclass(3)

NAME
Moose::Cookbook::Meta::Table_ClassMetaclass - Adding a "table" attribute to the metaclass VERSION
version 2.0604 SYNOPSIS
package MyApp::Meta::Class; use Moose; extends 'Moose::Meta::Class'; has table => ( is => 'rw', isa => 'Str', ); DESCRIPTION
WARNING: Subclassing metaclasses (as opposed to providing metaclass traits) is strongly discouraged. This recipe is provided solely for reference when encountering older code that does this. In this recipe, we'll create a new metaclass which has a "table" attribute. This metaclass is for classes associated with a DBMS table, as one might do for an ORM. In this example, the table name is just a string, but in a real ORM the table might be an object describing the table. THE METACLASS
This really is as simple as the recipe "SYNOPSIS" shows. The trick is getting your classes to use this metaclass, and providing some sort of sugar for declaring the table. This is covered in Moose::Cookbook::Extending::Recipe2, which shows how to make a module like "Moose.pm" itself, with sugar like "has_table()". Using this Metaclass in Practice Accessing this new "table" attribute is quite simple. Given a class named "MyApp::User", we could simply write the following: my $table = MyApp::User->meta->table; As long as "MyApp::User" has arranged to use "MyApp::Meta::Class" as its metaclass, this method call just works. If we want to be more careful, we can check the metaclass's class: $table = MyApp::User->meta->table if MyApp::User->meta->isa('MyApp::Meta::Class'); CONCLUSION
Creating custom metaclass is trivial. Using it is a little harder, and is covered in other recipes. We will also talk about applying traits to a class metaclass, which is a more flexible and cooperative implementation. SEE ALSO
Moose::Cookbook::Meta::Recipe5 - The "table" attribute implemented as a metaclass trait Moose::Cookbook::Extending::Recipe2 - Acting like Moose.pm and providing sugar Moose-style AUTHOR
Moose is maintained by the Moose Cabal, along with the help of many contributors. See "CABAL" in Moose and "CONTRIBUTORS" in Moose for details. COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Infinity Interactive, Inc.. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.16.2 2012-09-19 Moose::Cookbook::Legacy::Table_ClassMetaclass(3)
Man Page