.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "MooseX::AttributeHelpers::Trait::String 3pm" .TH MooseX::AttributeHelpers::Trait::String 3pm "2013-08-24" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" MooseX::AttributeHelpers::String \- simple string attribute .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& package MyHomePage; \& use Moose; \& use MooseX::AttributeHelpers; \& \& has \*(Aqtext\*(Aq => ( \& metaclass => \*(AqString\*(Aq, \& is => \*(Aqrw\*(Aq, \& isa => \*(AqStr\*(Aq, \& default => sub { \*(Aq\*(Aq }, \& provides => { \& append => "add_text", \& replace => "replace_text", \& } \& ); \& \& my $page = MyHomePage\->new(); \& $page\->add_text("foo"); # same as $page\->text($page\->text . "foo"); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides a simple string attribute, to which mutating string operations can be applied more easily (no need to make an lvalue attribute metaclass or use temporary variables). Additional methods are provided for completion. .PP If your attribute definition does not include any of \fIis\fR, \fIisa\fR, \&\fIdefault\fR or \fIprovides\fR but does use the \f(CW\*(C`String\*(C'\fR metaclass, then this module applies defaults as in the \*(L"\s-1SYNOPSIS\s0\*(R" above. This allows for a very basic counter definition: .PP .Vb 2 \& has \*(Aqfoo\*(Aq => (metaclass => \*(AqString\*(Aq); \& $obj\->append_foo; .Ve .SH "METHODS" .IX Header "METHODS" .IP "\fBmeta\fR" 4 .IX Item "meta" .PD 0 .IP "\fBmethod_provider\fR" 4 .IX Item "method_provider" .IP "\fBhas_method_provider\fR" 4 .IX Item "has_method_provider" .IP "\fBhelper_type\fR" 4 .IX Item "helper_type" .IP "\fBprocess_options_for_provides\fR" 4 .IX Item "process_options_for_provides" .PD Run before its superclass method. .IP "\fBcheck_provides_values\fR" 4 .IX Item "check_provides_values" Run after its superclass method. .SH "PROVIDED METHODS" .IX Header "PROVIDED METHODS" It is important to note that all those methods do in place modification of the value stored in the attribute. .IP "\fIinc\fR" 4 .IX Item "inc" Increments the value stored in this slot using the magical string autoincrement operator. Note that Perl doesn't provide analogeous behavior in \f(CW\*(C`\-\-\*(C'\fR, so \&\f(CW\*(C`dec\*(C'\fR is not available. .ie n .IP "\fIappend\fR $string" 4 .el .IP "\fIappend\fR \f(CW$string\fR" 4 .IX Item "append $string" Append a string, like \f(CW\*(C`.=\*(C'\fR. .ie n .IP "\fIprepend\fR $string" 4 .el .IP "\fIprepend\fR \f(CW$string\fR" 4 .IX Item "prepend $string" Prepend a string. .ie n .IP "\fIreplace\fR $pattern $replacement" 4 .el .IP "\fIreplace\fR \f(CW$pattern\fR \f(CW$replacement\fR" 4 .IX Item "replace $pattern $replacement" Performs a regexp substitution (\*(L"s\*(R" in perlop). There is no way to provide the \&\f(CW\*(C`g\*(C'\fR flag, but code references will be accepted for the replacement, causing the regex to be modified with a single \f(CW\*(C`e\*(C'\fR. \f(CW\*(C`/smxi\*(C'\fR can be applied using the \&\f(CW\*(C`qr\*(C'\fR operator. .ie n .IP "\fImatch\fR $pattern" 4 .el .IP "\fImatch\fR \f(CW$pattern\fR" 4 .IX Item "match $pattern" Like \fIreplace\fR but without the replacement. Provided mostly for completeness. .ie n .IP """chop""" 4 .el .IP "\f(CWchop\fR" 4 .IX Item "chop" \&\*(L"chop\*(R" in perlfunc .ie n .IP """chomp""" 4 .el .IP "\f(CWchomp\fR" 4 .IX Item "chomp" \&\*(L"chomp\*(R" in perlfunc .ie n .IP """clear""" 4 .el .IP "\f(CWclear\fR" 4 .IX Item "clear" Sets the string to the empty string (not the value passed to \f(CW\*(C`default\*(C'\fR). .SH "BUGS" .IX Header "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. .SH "AUTHOR" .IX Header "AUTHOR" Stevan Little .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2007\-2009 by Infinity Interactive, Inc. .PP .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.