Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME Easy::Accessor

make accessor easy

SYNOPSYS

{
    package Your::Class1;

    use Easy::Accessor;                     # import only 'set_accessor'
    use Easy::Accessor qw/:all/;            # import all functions below
    
    sub new {
        ......
        return bless...;
    }

    set_accessor(qw/foo/);
    set_accessor_read_only(qw/bar/);        
    set_accessor_class_only(qw/baz/);
    set_accessor_class_selected(
        class => 'Your::Class2',            # possible as [class1,class2,...]
        name  => 'class2_foo'               # possible as [qw/foo bar baz/]
    );

    our $result = {                         # it must be 'our' and '$' so I can't look into scratchpad of lexical var yet.
       foo => 100,
       bar => {
           baz => 20
       }
    };
    set_accessor_hash_ref($result);
    undef $hash_ref;                        # undef to capsule it self
}

{
    package Your::Class2;

    ......
}

{
    package main;
    
    my $x = Your::Class->new;
    
    $x->foo("hello");
    print $x->foo;                               # hello
    
    $x->bar(1);                             # once you set
    $x->bar(2);                             # die read only
    
    $x->baz('from_main');                   # die class only

    $x->class2_foo('from_main');            # die access only selected class

    print $x->result->foo;                  # 100
    $x->bar->boo(80);                       # set like hash
}

FUNCTIONS

set_accessor

set accessor of your class object

set_accessor(qw/foo bar baz/);

set_accessor_read_only

set readonly accessor of your class object

set_accessor_read_only(qw/foo bar baz/);

set_accessor_class_only

set accessor call from just only the class it set

set_accessor_class_only(qw/foo bar baz/);

set_accessor_class_selected

set accessor call from only a class or classes selected

set_accessor_class_selected(
    class => 'main',           # possible as [class1,class2,...]
    name  => 'foo'             # possible as [qw/foo bar baz/]
);

set_accessor_heash_ref

set accessor of your class hash reference

our $hash_ref = {                  # it must be 'our' and '$' so I can't look into scratchpad of lexical var yet.
   foo => 1,
   bar => {
       baz => 2
   }
};
set_accessor_hash_ref($hash_ref);
undef $hash_ref;                   # undef to capsule it self

you can write... $self->bar->baz   # usually, $hash_ref->{bar}{baz} or $self->getter->{bar}{baz}

About

Simple Class Accessor.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages