File: class_accessor_chained_fast.t

package info (click to toggle)
libmoosex-emulate-class-accessor-fast-perl 0.009032-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 168 kB
  • sloc: perl: 224; makefile: 2
file content (36 lines) | stat: -rw-r--r-- 715 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use strict;
use warnings;
use Test::More tests => 1;
use MooseX::Adopt::Class::Accessor::Fast;

{
  package MyClass::Accessor::Chained::Fast;
  use strict;
  use base 'Class::Accessor::Fast';

  sub make_accessor {
    my($class, $field) = @_;

    return sub {
      my $self = shift;
      if(@_) {
        $self->{$field} = (@_ == 1 ? $_[0] : [@_]);
        return $self;
      }
      return $self->{$field};
    };
  }
}

{
   package TestPackage;
   use base qw/MyClass::Accessor::Chained::Fast/;
   __PACKAGE__->mk_accessors('foo');
}

my $i = bless {}, 'TestPackage';
my $other_i = $i->foo('bar');
TODO: {
  local $TODO = 'ENOWORKEY';
  is($other_i, $i, 'Accessor returns instance as opposed to value.');
}