Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MouseX::NativeTraits(3User Contributed Perl DocumentatiMouseX::NativeTraits(3)

NAME
       MouseX::NativeTraits - Extend your attribute interfaces for Mouse

VERSION
       This document describes MouseX::NativeTraits version 1.09.

SYNOPSIS
	   package MyClass;
	   use Mouse;

	   has mapping => (
	       traits	 => ['Hash'],
	       is	 => 'rw',
	       isa	 => 'HashRef[Str]',
	       default	 => sub	{ +{} },
	       handles	 => {
		   exists_in_mapping =>	'exists',
		   ids_in_mapping    =>	'keys',
		   get_mapping	     =>	'get',
		   set_mapping	     =>	'set',
		   set_quantity	     =>	[ set => 'quantity' ],
	       },
	   );

DESCRIPTION
       While Mouse attributes provide a	way to name your accessors, readers,
       writers,	clearers and predicates, MouseX::NativeTraits provides
       commonly	used attribute helper methods for more specific	types of data.

       As seen in the "SYNOPSIS", you specify the data structure via the
       "traits"	parameter. These traits	will be	loaded automatically, so you
       need not	load MouseX::NativeTraits explicitly.

       This extension is compatible with Moose native traits, although it is
       not a part of Mouse core.

PARAMETERS
   handles
       This is like "handles" in "has" in Mouse, but only HASH references are
       allowed.	 Keys are method names that you	want installed locally,	and
       values are methods from the method providers (below).  Currying with
       delegated methods works normally	for "handles".

NATIVE TRAITS
   Array
       Common methods for array	references.

	   has 'queue' => (
	      traits	 => ['Array'],
	      is	 => 'ro',
	      isa	 => 'ArrayRef[Str]',
	      default	 => sub	{ [] },
	      handles	 => {
		  add_item  => 'push',
		  next_item => 'shift',
	      }
	   );

       See MouseX::NativeTraits::ArrayRef.

   Hash
       Common methods for hash references.

	   has 'options' => (
	       traits	 => ['Hash'],
	       is	 => 'ro',
	       isa	 => 'HashRef[Str]',
	       default	 => sub	{ {} },
	       handles	 => {
		   set_option => 'set',
		   get_option => 'get',
		   has_option => 'exists',
	       }
	   );

       See MouseX::NativeTraits::HashRef.

   Code
       Common methods for code references.

	   has 'callback' => (
	      traits	 => ['Code'],
	      is	 => 'ro',
	      isa	 => 'CodeRef',
	      default	 => sub	{ sub {	'called' } },
	      handles	 => {
		  call => 'execute',
	      }
	   );

       See MouseX::NativeTraits::CodeRef.

   Bool
       Common methods for boolean values.

	   has 'is_lit'	=> (
	       traits	 => ['Bool'],
	       is	 => 'rw',
	       isa	 => 'Bool',
	       default	 => 0,
	       handles	 => {
		   illuminate  => 'set',
		   darken      => 'unset',
		   flip_switch => 'toggle',
		   is_dark     => 'not',
	       }
	   );

       See MouseX::NativeTraits::Bool.

   String
       Common methods for string operations.

	   has text => (
	       traits	 => ['String'],
	       is	 => 'rw',
	       isa	 => 'Str',
	       default	 => q{},
	       handles	 => {
		   add_text	=> 'append',
		   replace_text	=> 'replace', #	or replace_globally
	       }
	   );

       See MouseX::NativeTraits::Str.

   Number
       Common numerical	operations.

	   has value =>	(
	       traits	 => ['Number'],
	       is	 => 'ro',
	       isa	 => 'Int',
	       default	 => 5,
	       handles	 => {
		   set => 'set',
		   add => 'add',
		   sub => 'sub',
		   mul => 'mul',
		   div => 'div',
		   mod => 'mod',
		   abs => 'abs',
	       }
	   );

       See MouseX::NativeTraits::Num.

   Counter
       Methods for incrementing	and decrementing a counter attribute.

	   has counter => (
	       traits	 => ['Counter'],
	       is	 => 'ro',
	       isa	 => 'Num',
	       default	 => 0,
	       handles	 => {
		   inc_counter	 => 'inc',
		   dec_counter	 => 'dec',
		   reset_counter => 'reset',
	       }
	   );

       See MouseX::NativeTraits::Counter.

DEPENDENCIES
       Perl 5.6.2 or later.

BUGS
       All complex software has	bugs lurking in	it, and	this module is no
       exception. If you find a	bug please either email	me, or add the bug to
       cpan-RT.

SEE ALSO
       Mouse

       MouseX::AttributeHelpers

       Moose

       Moose::Meta::Attribute::Native

       MooseX::AttributeHelpers

AUTHORS
       Goro Fuji (gfx) <gfuji(at)cpan.org>

       This module is based on Moose native traits written by Stevan Little
       and others.

LICENSE	AND COPYRIGHT
       Copyright (c) 2010, Goro	Fuji (gfx), mostly based on Moose, which is
       (c) Infinity Interactive, Inc (<http://www.iinteractive.com>).

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself. See	perlartistic for details.

perl v5.32.1			  2012-11-26	       MouseX::NativeTraits(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | PARAMETERS | NATIVE TRAITS | DEPENDENCIES | BUGS | SEE ALSO | AUTHORS | LICENSE AND COPYRIGHT

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=MouseX::NativeTraits&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help