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