diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2007-11-10 17:53:53 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2007-11-10 17:53:53 +0000 |
| commit | cfdd733c17cfa4f1a43b827a656e9e53cc2524ac (patch) | |
| tree | b6f659b1281f77628b36768f0888f67b65f9ca48 /lib/Class/MakeMethods/Template/Array.pm | |
| parent | 9c6c30350161efd74faa3c3705096aecb71c0e81 (diff) | |
| download | xxv-cfdd733c17cfa4f1a43b827a656e9e53cc2524ac.tar.gz xxv-cfdd733c17cfa4f1a43b827a656e9e53cc2524ac.tar.bz2 | |
* Remove unsed packages
* Reorder exit routines
Diffstat (limited to 'lib/Class/MakeMethods/Template/Array.pm')
| -rw-r--r-- | lib/Class/MakeMethods/Template/Array.pm | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/lib/Class/MakeMethods/Template/Array.pm b/lib/Class/MakeMethods/Template/Array.pm deleted file mode 100644 index 0d2ab2d..0000000 --- a/lib/Class/MakeMethods/Template/Array.pm +++ /dev/null @@ -1,102 +0,0 @@ -package Class::MakeMethods::Template::Array; - -use Class::MakeMethods::Template::Generic '-isasubclass'; - -$VERSION = 1.008; -use strict; -require 5.00; -use Carp; - -=head1 NAME - -Class::MakeMethods::Template::Array - Methods for manipulating positional values in arrays - -=head1 SYNOPSIS - - -=head1 DESCRIPTION - -=cut - -use vars qw( %ClassInfo ); - -sub generic { - { - 'params' => { - 'array_index' => undef, - }, - 'code_expr' => { - _VALUE_ => '_SELF_->[_STATIC_ATTR_{array_index}]', - '-import' => { 'Template::Generic:generic' => '*' }, - _EMPTY_NEW_INSTANCE_ => 'bless [], _SELF_CLASS_', - _SET_VALUES_FROM_HASH_ => 'while ( scalar @_ ) { local $_ = shift(); $self->[ _BFP_FROM_NAME_{ $_ } ] = shift() }' - }, - 'behavior' => { - '-init' => sub { - my $m_info = $_[0]; - - # If we're the first one, - if ( ! $ClassInfo{$m_info->{target_class}} ) { - # traverse inheritance hierarchy, looking for fields to inherit - my @results; - no strict 'refs'; - my @sources = @{"$m_info->{target_class}\::ISA"}; - while ( my $class = shift @sources ) { - next unless exists $ClassInfo{ $class }; - push @sources, @{"$class\::ISA"}; - if ( scalar @results ) { - Carp::croak "Too many inheritances of fields"; - } - push @results, @{$ClassInfo{$class}}; - } - $ClassInfo{$m_info->{target_class}} = \@sources; - } - - my $class_info = $ClassInfo{$m_info->{target_class}}; - if ( ! defined $m_info->{array_index} ) { - foreach ( 0..$#$class_info ) { - if ( $class_info->[$_] eq $m_info->{'name'} ) { - $m_info->{array_index} = $_; last } - } - if ( ! defined $m_info->{array_index} ) { - push @ $class_info, $m_info->{'name'}; - $m_info->{array_index} = $#$class_info; - } - } - - return; - }, - }, - } -} - -######################################################################## - -=head2 Standard Methods - -The following methods from Generic should be supported: - - scalar - string - 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. - -The items marked with a ? above have not been tested sufficiently; please inform the author if they do not function as you would expect. - -=cut - -######################################################################## - -1; |
