diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2007-08-13 18:41:27 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2007-08-13 18:41:27 +0000 |
| commit | bcbf441e09fb502cf64924ff2530fa144bdf52c5 (patch) | |
| tree | f377707a2dac078db8cd0c7d7abfe69ac1006d71 /lib/Class/MakeMethods/Template/Scalar.pm | |
| download | xxv-bcbf441e09fb502cf64924ff2530fa144bdf52c5.tar.gz xxv-bcbf441e09fb502cf64924ff2530fa144bdf52c5.tar.bz2 | |
* Move files to trunk
Diffstat (limited to 'lib/Class/MakeMethods/Template/Scalar.pm')
| -rw-r--r-- | lib/Class/MakeMethods/Template/Scalar.pm | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/lib/Class/MakeMethods/Template/Scalar.pm b/lib/Class/MakeMethods/Template/Scalar.pm new file mode 100644 index 0000000..705f007 --- /dev/null +++ b/lib/Class/MakeMethods/Template/Scalar.pm @@ -0,0 +1,80 @@ +package Class::MakeMethods::Template::Scalar; + +use Class::MakeMethods::Template::Generic '-isasubclass'; + +$VERSION = 1.008; +use strict; +require 5.00; +use Carp; + +=head1 NAME + +Class::MakeMethods::Template::Scalar - Methods for blessed scalars + +=head1 SYNOPSIS + + package MyObject; + use Class::MakeMethods::Template::ExternalData ( + new => 'new', + scalar => 'foo', + ); + + package main; + + my $obj = MyObject->new( foo => "Foozle" ); + print $obj->foo(); # Prints Foozle + $obj->foo("Bamboozle"); # Sets $$obj + print $obj->foo(); # Prints Bamboozle + +=head1 DESCRIPTION + +Supports the Generic object constructor and accessors meta-method +types, but uses scalar refs as the underlying implementation type, +so only one accessor method can be used effectively. + +=cut + +sub generic { + { + '-import' => { + 'Template::Generic:generic' => '*' + }, + 'code_expr' => { + _VALUE_ => '(${_SELF_})', + _EMPTY_NEW_INSTANCE_ => 'bless \( my $scalar = undef ), _SELF_CLASS_', + }, + 'params' => { + } + } +} + +######################################################################## + +=head2 Standard Methods + +The following methods from Generic are all supported: + + new + scalar + string + string_index + number + boolean + bits + array + hash + tiedhash + hash_of_arrays + object + instance + array_of_objects + code + code_or_scalar + +See L<Class::MakeMethods::Template::Generic> for the interfaces and behaviors of these method types. + +However, note that due to special nature of this package, all accessor methods reference the same scalar value, so setting a value with one method will overwrite the value retrieved by another. + +=cut + +1; |
