TODO list for Perl module Class::InsideOut
# Todos after 1.0
- change to Apache license
- add support for new DDS serialization hooks
- test DDS on other serialization tests
- document DDS support
- accessor style options
- write FAQs
- expand documentation (cookbook? quick-start? notes on writing Builders)
- document some internal introspection functions (e.g. _evert/_revert)
# Possible todos depending on demand
- class accessors via "public foo => my $foo";
- add public introspection methods (property list and options?)
- accessor privacy => "protected" and matching property alias
- look into support for cloning tied objects(?) in the blessed hash(?)
- pre-clone user hook?? (waiting for someone to say they need it)
- BUILD method
#--------------------------------------------------------------------------#
# Thoughts about property accessor styles and options
#--------------------------------------------------------------------------#
# have to be careful of interrelationship between style and custom prefixes;
# maybe don't allow custom prefixes at all
Class::InsideOut::options(
accessor_style => 'perl', # default
# "combined"; "perl" => foo() and foo(x)
# "get_set"; "java" => get_foo() and set_foo(x)
# "eiffel" => foo() and set_foo(x)
get_prefix => 'get_', # maybe don't bother (YAGNI)
set_prefix => 'set_', # maybe don't bother (YAGNI)
privacy => 'public', # create accessors for everything given to properties
# or 'readonly' or 'protected' or 'private'
set_hook => \&coderef, # mutator argument filtered through this
# will catch die message for error
set_returns => 'self' # or 'newvalue' or 'oldvalue'
);
#--------------------------------------------------------------------------#
# FAQ ideas
#--------------------------------------------------------------------------#
* Security (c.f use perl post)
* advisory encapsulation
* Why "public *foo*" separate from "my %foo" (e.g. for "my %foo_of")
* Another advantage of InsideOut over accessors -- can use as Lvalue for
things like increments: $count_of{ id $self }
#--------------------------------------------------------------------------#
# Cookbook ideas
#--------------------------------------------------------------------------#
* Outside-in pattern
* Property aliasing: ( should work, but what about Storable? )
assets => my %assets;
wealth => my %assets;