File: TODO

package info (click to toggle)
libclass-methodmaker-perl 1.05-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 260 kB
  • ctags: 22
  • sloc: perl: 1,568; makefile: 54
file content (222 lines) | stat: -rw-r--r-- 5,062 bytes parent folder | download
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
IN NO GIVEN ORDER, Requests & Ideas

------------------------------------

new, init etc. to do SUPER-> as necessary

------------------------------------

Ability to proxy *all* unknown methods to attribute objects (in some
order..., using _can_)
 
------------------------------------
 
Use Damian Conway's "Switch" package...
 
-----------------------------------

object should be able to non auto-create, or auto-create with different
new method, and or with args (possibly generated by a subr)

------------------------------------

Ability to lock on a component.

------------------------------------

All list methods should check for definedness of field.  clear should
only clear if it needs it; should preserve existing ref?

------------------------------------

object should warn/error when given an object of the wrong type
(non-descendent.)

------------------------------------

Add stacks, queues, sets, other data structures.

------------------------------------

Add a list->slice method, that takes indexes, and returns (surprise!)  a
slice.

------------------------------------

REQUEST Make list->x replace the elements of list, rather than push (use
an argument to do this for now, later make it te default).

Frank Tobin sent a patch for this.

------------------------------------

IDEA
Add empty_copy method.
Add copy_into method.

------------------------------------

REQUEST
Add test for copy method to every normal test.

------------------------------------

REQUEST
Add general options parsing mechanism, for use of meta-methods.

------------------------------------

REQUEST
Add methods for defined / exists / delete on get_set.

------------------------------------

REQUEST
Add hash each method, probably using a closure to provide iteration.
Alternatively, save the keys, check each one before returning.

------------------------------------

REQUEST
The docs have to be re-organized. The order should be something like:

  new
  new_with_init
  hash_init
  get_set
  static_get_set
  list
  static_hash
  boolean
  object
  code

------------------------------------

IDEA
Maybe once there is a static implementation for each type (list,
hash, get_set), the static-ness should be set with a keyword and not a
partiuclar value:

  use Class::MethodMaker
    get_set => [qw/ foo -static bar /];

Alternative possible syntax for options:

  use Class::MethodMaker
    get_set => [qw/ foo bar(static) /];
Applies static option to bar only.

------------------------------------

REQUEST

Add constraints/bounds (a la Java Beans) to get_set (and others?), also
pre-post get/set methods

------------------------------------

IDEA
Add support for tied arrays & scalars, a la tie_hash

------------------------------------

IDEA
Add filehandle method.  Is get_set insufficient?

------------------------------------

IDEA
Add (nested) grouping functionality directly to get_set.

------------------------------------

REQUEST
Use Pseudohashes --- make it a class option, for compatibility.

------------------------------------

REQUEST
Synchronize static_hash with hash

------------------------------------

REQUEST
Add new-style list methods (i.e., x_verb)
Check for any methods generated that are not
preceded with slot name.

Make list methods consistent with hash_of_lists methods, in action, and
in name (x_verb).  Also for others (e.g., set_ clear_ boolean)

------------------------------------

REQUEST
Add int type.
Should this be an instance of a more generic checkable-type get_set?
If so, how does this fit in with constrained get_sets?

------------------------------------

IDEA
Add callback possibility into procedures? Maybe use ties?
How does this fit in with bound/constrained get_sets?

------------------------------------

REQUEST
Deprecate verb_x methods

------------------------------------

REQUEST
Add object exists method (non-auto-create ?)

------------------------------------

REQUEST
Add ability to not auto-create value of object method.

------------------------------------

REQUEST
Add renaming forwarding (i.e., forward x->foo as x->y->bar) and arg
reordering (i.e., x->foo (a,b,c) as x->y->bar (b,a))

------------------------------------

IDEA
Prefix internal names with '__' ?

------------------------------------

IDEA
Is struct still useful ?

------------------------------------

REQUEST
Add memoizing values (scalar, list, etc.)

------------------------------------

IDEA
Autoexpansion of array refs in list basic method is a gotcha if you're
trying to insert arrayrefs into the list

------------------------------------

IDEA
It would be good to create new_... methods which accepted prototype
objects to clone with Ref::copyref, which enables nice defaults
management and allows use with non-hash-based classes.

------------------------------------

IDEA
builtin_class:
Add -fatal flag to die if core func returns false / undef
Add call method to recall method with alternative arguments.
Add -nocall flag to not call core func on new.

------------------------------------