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 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444
|
Changes for DateTime::Set
0.3900 2016-10-09
- require Params::Validate
0.3800 2016-05-23
- doc patch, by Lucas Kanashiro.
0.3700 2016-05-17
- end() / max() and start() / min() are aliases to the same method in all classes.
Added docs and tests. Reported by Vincent Berger.
0.3600 2015-11-11
- move t/22intersects.t to DT::Event::Recurrence module
0.3500 2015-11-10
- [rt.cpan.org #108633] Recurrent event does not intersect indefinite future,
test contributed by Brett Watson.
- documentation - intersects() returns 0 for false, and 'undef' for
undecidable.
0.3400 2014-02-12
- documentation and packaging fixes - by David Steinbrunner.
- version number using 4 digits - requested by David Marshall.
0.33 2013-09-15
- bugfix in SpanSet->grep. Reported by Andreas Isberg
0.32 2013-08-27
- ignore duration signal in DateTime::Span->from_datetime_and_duration()
and use the 'end'/'start' parameters as a cue for the time direction,
suggested by David Pottage
- more tests of intersections with open/closed ended spans
0.30 2011-04-11
- new test file t/21from_recurrence.t
Contributed by Olivier Mengue
0.29 2011-04-01
- new method is_empty_set - bug #50750
0.28 2009-07-19
- optimized DateTime::Set->as_list().
This works around a segfault reported by Nils Grunwald.
0.27 2009-04-02
- fixed DateTime::Spanset duration() method.
Reported by Anton Berezin <tobez@tobez.org>
0.26 2008-12-25
- fixed DateTime::Spanset current() and set_time_zone() methods.
Report and tests by Elliot Shank.
0.25 2005-10-05
- t/15time_zone.t does it's own time zone "add_duration" handling
0.24 2005-10-03
- _recurrence.pm warned when the recurrence didn't have occurrences before
a given start date. Reported by Mark D. Anderson.
0.23 2005-10-03
- _recurrence.pm died when the recurrence didn't have occurrences before
a given start date. Reported by Mark D. Anderson.
0.22 2005-05-06
- DateTime::Set 0.21 dies when as_list is asked to produce a list from
outside the range of the set. Patch contributed by Stephen Gowing.
0.21 2005-04-06
- no hard limit in count() and as_list(); removed the warnings from the docs.
0.20 2005-02-28
- changed tests to use en_US instead of pt_BR (which changes every year)
by Dave Rolsky.
- optimized SpanSet methods for special cases:
start_set()
end_set()
contains( $dt )
intersects( $dt )
- added an example to count(), by David Nicol.
- added a note about how the result of min()/max() is just a copy of the
actual set boundary. Reported by Ron Hill.
0.19 2004-11-29
- added more comments on as_list() and count() behaviour on large sets.
Reported by Rick Frankel (rt ticket 8611)
0.18 2004-11-25
- ignore "__DIE__" signal while calculating durations.
Reported by michelle.agnew (rt ticket 5434)
0.17 2004-08-17
- bugfix: it was trying to set the time zone of an "undef" value;
this has broken some DT::Event::Recurrence tests - reported by Bill Moseley
0.1603 2004-07-05
- revised documentation, some examples were rewritten.
- deprecate "iterate" method
- Build.PM requires Set::Infinite 0.59 - reported by Tim Muller-Seydlitz
0.1602 2004-07-02
- fixed time zone handling in the methods:
set_time_zone
next/previous/closest/current
- removed limitation of duration size in methods:
add/add_duration
subtract/subtract_duration
- requires Set::Infinite 0.59 - uses iterate() experimental
argument "backtrack_callback"
- the following methods are now mutators:
set_time_zone( $tz )
set( locale => $locale )
add( unit => $n )
add_duration( $dur )
subtract( unit => $n )
subtract_duration( $dur )
- fixed max/min of an infinite SpanSet
- added test for infinite duration
- from_recurrence() code cleanup
- parameter checking: The 'dates' argument to from_datetimes()
must be a list of DateTime objects
0.1601 2004-03-30
- more parameter checking;
Sets should interoperate better with objects of
type DateTime::Event::* and DateTime::Incomplete
0.16 2004-03-29
- Makefile.PL skips processing of "Build.PL"
Reported by Reinhold May
0.15 2004-03-28
[ ENHANCEMENTS from version 0.14 ]
- Both "Makefile.PL" and "Build.PL" are provided.
- New methods:
DateTime::SpanSet::current
DateTime::Spanset::closest
DateTime::Set::map / grep
DateTime::SpanSet::map / grep
DateTime::SpanSet::intersected_spans
DateTime::SpanSet::start_set / end_set
- Recurrences can be bounded sets.
- Recurrences can be as small as 1 nanosecond.
- DateTime::SpanSet::duration may return an 'infinite'
DateTime::Duration (instead of scalar infinity).
[ *** BACKWARDS INCOMPATIBILITIES from version 0.14 *** ]
- The next/previous functions used in DT::Set->from_recurrence()
MUST work with DateTime::Infinite::Future
and DateTime::Infinite::Past parameters.
Failing to test for "infinity" values is known
to cause an infinite loop in some modules.
- DateTime::Set and DateTime::SpanSet methods do not mutate the set.
This was the behaviour in version 0.13
0.1413 2004-03-28
- detect_bounded => 1 is deprecated.
0.1412 2004-03-28
- DateTime::Set->from_recurrence - Bounded recurrences are "optional".
use " detect_bounded => 1 " to turn them on.
This fixes the backwards incompatibilities created by version 0.1402.
0.1411 2004-03-27
- Makefile.PL. Suggested by Randal L. Schwartz.
0.1410 2004-03-26
- Build.PL
0.1409 2004-03-23
- evaluation of bounded recurrences is "lazier".
(DateTime::Incomplete tests are twice as fast)
0.1408 2004-03-22
- refactored S::I::_recurrence class:
it doesn't use "current" anymore;
small bugfixes & optimizations.
("current" was not documented in DT::Set)
- new test: t/17quantize.t
Tests a method to make "quantization" (or "discretization")
of spansets.
0.1407 2004-03-16
- New methods:
DateTime::SpanSet::current
DateTime::Spanset::closest
- "Fixed" DateTime::SpanSet::next / previous
no longer "split" the returned spans.
- Added examples and parameter validation to map / grep
- DateTime::SpanSet::duration may return an 'infinite'
DateTime::Duration, instead of scalar infinity.
- Bugfix: DateTime::Spanset::union / intersection / ...
correctly accept DateTime parameters.
0.1406 2004-03-15
- New methods:
DateTime::Set::map / grep
DateTime::SpanSet::map / grep
From a discussion with Andrew Pimlott and Dave Rolsky
- Cleanup "datetime" code from _recurrence.pm
- iterate() marked as "internal"
0.1405 2004-03-15
- New method: DateTime::SpanSet::intersected_spans
Suggested by Reinhold May
Name suggested by Dave Rolsky
0.1404 2004-03-14
- New methods: DateTime::SpanSet::start_set / end_set
These are the inverse of the "from_sets" method.
Suggested by Reinhold May
0.1403 2004-03-10
- new method DateTime::SpanSet::iterate
[ *** BACKWARDS INCOMPATIBILITIES *** ]
- DateTime::Set and DateTime::SpanSet methods do not mutate the set.
This is the behaviour we had before version 0.13
0.1402 2004-03-08
- Recurrence functions can be used to generate bounded sets.
See: t/16bounded_recurrence.t
- There is no limit on how small a recurrence can be.
Recurrences as small as 1 nanosecond are possible.
[ *** BACKWARDS INCOMPATIBILITIES *** ]
All modules that create their own recurrences
must now be able to respond to DateTime::Infinite::Future
and DateTime::Infinite::Past parameters. The easiest way
to do this is to add this to the first line of the recurrence
subroutines:
next => sub {
return $_[0] if $_[0]->is_infinite;
...
}
previous => sub {
return $_[0] if $_[0]->is_infinite;
...
}
0.1401 2003-11-06
- span() was returning the set, instead of the result.
0.14 2003-11-02
- duration() should not set $@ for sets with infinity duration.
Reported by Dan Kubb.
0.13
0.1205 2003-10-16
- requires Set::Infinite 0.54 (it is the "published" version of 0.5307)
- DateTime::Set add_duration mutates the set. This is more compatible
with the way the DateTime.pm API works.
- new DateTime::SpanSet methods:
as_list( $span_spec ), next( $dt|$span ), previous( $dt|$span )
0.1204 2003-10-10
- DateTime::SpanSet and DateTime::Span inherit DateTime::Set $VERSION
- Trying to subtract infinity from a datetime is not fatal in duration()
Bug report by Dan Kubb.
- new method 'iterate'
- requires Set::Infinite 0.5307 (pass new backtracking tests)
- added more tests for add_duration, subtract_duration
- added set( locale => .. ) to DateTime::Set
0.1203 2003-09-26
- Added docs to Set::Infinite::_recurrence;
split into a separate file such that it doesn't mix the pods
- refactored union / intersection
- _is_recurrence test prevents error when programming subroutine methods
0.1202 2003-09-24
- fixed set_time_zone and add_duration:
was not clearing 'next' upon return, when arg was a recurrence.
0.1201 2003-09-24
- optimized contains() and intersects() when arg is a datetime
- recurrence constructor always adds '->clone' to recurrence function
- refactored _recurrence method;
first/last of recurrences are calculated 'on demand'
- requires Set::Infinite 0.5305
0.12 2003-09-22
- implement previous() in DT::SpanSet.pm
- Fixed: set_time_zone would mutate a clone.
0.11 2003-09-19
- Fixed callback return value on set_time_zone.
This caused the start date to be equal to the end date.
Bug found by Dan Kubb.
0.10 2003-09-02
- DateTime::Span->duration now uses the new subtract_datetime_absolute
method, which means that the duration is always given in seconds.
- supports _huge_ recurrence sets (not infinite) with "virtual" elements.
these sets have 'undef' count.
Experimental - mostly untested !
this adds support for sets like 'all seconds in 2003'
- faster recurrence intersection
- count returns 'undef' for infinite sets.
0.09 2003-08-18
- added DT::Set count()
- fixed DT::SpanSet duration()
- methods that accepted a DT object, now accept a list of DT objects.
Suggested by Ben Bennet, I think.
- added _callback_next - "previous-only recurrences"
- optimizes intersection of recurrence with span
- internal 'S::I' recurrence class
- small fix in DT::Set clone()
- DateTime::Set uses DateTime infinity constants;
max and min now return DateTime::Infinite::Future/Past objects.
- DateTime::Span uses DateTime infinity constants;
max and min now return DateTime::Infinite::Future/Past objects.
Docs update to explain 'max()' value when a span is built using 'before'.
- added method set_time_zone()
- clone() is documented
0.08 2003-05-30
- recurrence set intersection uses 'current'
- fixed a number of methods in DateTime::Span, including intersection,
intersects, contains, union, and complement, all of which called the
non-existent DateTime::Set->new method. Dave Rolsky.
0.07 2003-05-23
- some tweaking on intersection, union, and in the recurrence generator.
- more tests
0.06 2003-05-14
- added 'use warnings' in some tests, added DateTime 0.12 prereq.
0.04 2003-05-12
- change "closest" code to avoid duration comparison
0.03 2003-04-27
- fixes in Set.pm as_list, span.
- iterator accepts 'span' parameters. Ben Bennett
- remove deprecated DateTime::Set->new and DateTime::SpanSet->new. Dave Rolsky
- requires Set::Infinite 0.49
0.02 2003-04-20
- removed some calls to 'new'
- added many methods from DT::Event::Recurrence
- add 'span' parameter to as_list
- from_recurrence now accepts next + previous
0.01 2003-04-19
- first "official" release.
- implemented DateTime::SpanSet->from_sets and
DateTime::SpanSet->from_set_and_duration
- Many doc tweaks. Dave Rolsky
- DateTime::Span->duration and DateTime::SpanSet->duration now return
infinity instead of undef for infinite spans. Dave Rolsky
- Added DateTime::SpanSet->empty_set. Dave Rolsky
0.00_20 2003-04-10
- Docs for DateTime::SpanSet API
(not implemented)
- DateTime::Span API:
from_datetime_and_duration, from_datetimes
0.00_18 2003-03-25
- changes docs, changed API
from_recurrence, from_datetimes, new()
- as_list
- previous() method (quite untested)
- small API changes
- revised docs, from Dave Rolsky
- small bugfix in creating open spans
- added DateTime::Span and DateTime::SpanSet
- put "..." to mark where we need more docs
- DateTime::Set and DateTime::Span API look ok.
0.00_13 2003-03-19
- added tests for set operations with recurrences/add
- iterator passes all tests
- the API is complete, as described in SYNOPSIS
- small fix in add() syntax; accepts a duration=> parameter
- iterator, next
0.00_10 2003-03-14
- union, intersection
- experimental code to generate recurrence from a simple callback
0.00_07 2003-02-28
- added experimental method create_recurrence()
- added experimental method add_duration()
- improved SYNOPSIS
- added 'immutability' tests
- new() will not try to clone non-DateTime parameters (such as the
Infinity value)
- The program will die with an error message,
if one tries to use offset() or quantize() methods
These methods might come back in a later version.
- new() clones its parameters.
This means the parameters don't have to be immutable
- new() will give an error message if we try to use a scalar parameter
instead of a DateTime
- Uses Set::Infinite as base class, instead of Date::Set::Timezone
This means some methods just disappeared, like event() and exclude().
RFC2445 support might come back in a later revision.
- Removed experimental Autoload code
- Added 'Changes' and 'README'
- moved POD to end of source file.
|