1TODO list for Perl module Class::InsideOut 2 3# Todos after 1.0 4 5- change to Apache license 6- add support for new DDS serialization hooks 7- test DDS on other serialization tests 8- document DDS support 9- accessor style options 10- write FAQs 11- expand documentation (cookbook? quick-start? notes on writing Builders) 12- document some internal introspection functions (e.g. _evert/_revert) 13 14# Possible todos depending on demand 15 16- class accessors via "public foo => my $foo"; 17- add public introspection methods (property list and options?) 18- accessor privacy => "protected" and matching property alias 19- look into support for cloning tied objects(?) in the blessed hash(?) 20- pre-clone user hook?? (waiting for someone to say they need it) 21- BUILD method 22 23#--------------------------------------------------------------------------# 24# Thoughts about property accessor styles and options 25#--------------------------------------------------------------------------# 26 27# have to be careful of interrelationship between style and custom prefixes; 28# maybe don't allow custom prefixes at all 29 30Class::InsideOut::options( 31 accessor_style => 'perl', # default 32 # "combined"; "perl" => foo() and foo(x) 33 # "get_set"; "java" => get_foo() and set_foo(x) 34 # "eiffel" => foo() and set_foo(x) 35 36 get_prefix => 'get_', # maybe don't bother (YAGNI) 37 set_prefix => 'set_', # maybe don't bother (YAGNI) 38 privacy => 'public', # create accessors for everything given to properties 39 # or 'readonly' or 'protected' or 'private' 40 set_hook => \&coderef, # mutator argument filtered through this 41 # will catch die message for error 42 set_returns => 'self' # or 'newvalue' or 'oldvalue' 43); 44 45#--------------------------------------------------------------------------# 46# FAQ ideas 47#--------------------------------------------------------------------------# 48 49* Security (c.f use perl post) 50 51* advisory encapsulation 52 53* Why "public *foo*" separate from "my %foo" (e.g. for "my %foo_of") 54 55* Another advantage of InsideOut over accessors -- can use as Lvalue for 56 things like increments: $count_of{ id $self } 57 58#--------------------------------------------------------------------------# 59# Cookbook ideas 60#--------------------------------------------------------------------------# 61 62* Outside-in pattern 63 64* Property aliasing: ( should work, but what about Storable? ) 65 assets => my %assets; 66 wealth => my %assets; 67