-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTODO
89 lines (58 loc) · 2.4 KB
/
TODO
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
KNOWN BUGS
- the 'recurrence' argument should be $_, instead of $_[0].
This is too late to change, because there are many DateTime modules
that use it.
- 'set_time_zone' was published as a function, then as a mutator,
then as a function, then as a mutator.
It settled as a mutator.
TODO list for DT::Set, DT::Span, and DT::SpanSet
2004-11-29
- DateTime::SpanSet has no count() method
2004-07-03
- what happens if the recurrence function returns an 'undef' ?
(the program should die - add tests for this)
- this POD entry is not entirely correct, it should be tested/fixed:
The callbacks can return C<DateTime::Infinite::Future> and
C<DateTime::Infinite::Past> objects, in order to define
I<bounded recurrences>.
In this case, both 'next' and 'previous' callbacks must be defined:
- 'truncate' method ?
- add set_time_zone tests to Span & SpanSet
- add "mutability" tests for DT::Span, DT::SpanSet
see 02immutable.t
- implement add/subtract in DT::Span, DT::SpanSet
- implement start/end aliases in DT::Set
2004-06-25
- cleanup the examples in POD that use
return $_[0] if $_[0]->is_infinite;
and explain when and why to use this.
- add tests for all examples given.
-----------------
- Test for errors, in case the "next/previous"
recurrence spec is not followed (detect infinite loop).
Give a message like:
"A recurrence loop was detected. Check that you are using
the latest DateTime::Event module version"
Or, try to detect the error and automatically
"downgrade" DateTime::Set.
The problem is, the infinite loops happens
_inside_ next(). There seems to be no way to
detect this.
- implement set( locale => .. ) in Span and SpanSet
- Add tests for new methods: DateTime::SpanSet::map / grep
- discuss functions like
is_infinite
is_empty
- implement faster DT::Set::complement(),
using 'function composition'
- move all 'set-specific' code to Set::Infinite::_recurrence
use accessors instead of structure references
- functions like before(), after(), during() might be useful
in DT::Span
or maybe these should be called next(), previous(), current(), closest()
- document better:
how to transform a Span into an iterator - for example,
get the list of days in a span
- optimization: rewrite intersection of recurrences 'previous' function
- optimization: extract start_set / end_set right from
the data structure, if possible.