- Removed API docgen to allow
pub.dartlang.org
to automatically link to the correct API docs for each version atdartdocs.org
.
- Renamed the
states
stream toonStateChange
in theSchedule
class.
- Removed the dependency on the
logging
package. In its place theSchedule
constructor now takes an optionallog
function that is called when logging is enabled using the command line option-Dlog_undone=true
; the defaultlog
function isprint
fromdart:core
. This change was made to delegate the choice of logging utility to the user.
- Added the constant
STATES
list to the public interface ofSchedule
. - Added a design document derived from an old blog post about the library.
- Changed all argument validation to use the
assert
statement. This was done to optimize code size and runtime performance in production mode.
- Disabled logging by default; it may be enabled using the command line option
-Dlog_undone=true
.
- Added the
history
,nextRedo
andnextUndo
getters toSchedule
and added optional parametershistory
andnextUndo
to its constructor. These additions provide a view into and control over the internal history list of actions. Use cases for this functionality include data-binding of a history list to a user interface element and serialization of a history list between sessions.
- Deployed the
nudge
example togh-pages
and link to it from theREADME
.
- Added an optional
context
toAction
that allows user-defined data to be attached to an action as an alternative to defining a new type of action. - Changed the return type of the
Do
andUndo
typedefs to bedynamic
and removed theDoAsync
andUndoAsync
typedefs. - Removed the
new Action.async
constructor; thenew Action
constructor now wraps allDo
andUndo
function calls usingnew Future.sync
to support both synchronous and asynchronousDo
andUndo
functions. - Updated API documentation generation to use the new
docgen
tool.
- Changed the way validation errors at the start of
Schedule.call
are treated such that they no longer affect the state of the schedule; They are completed as error to the caller with a stack trace, but they no longer modify the state of the schedule. - Added a stack trace to transaction error continuations; this is equal to the
TransactionError.causeStackTrace
.
- Fixed a bug in guarded action error completion that was introduced in the previous 0.2.13 release.
- Updated for the Dart 1.0 release.
- Added an optional
timeout
toAction
objects and if it is non-null then guard all calls to do or undo the action with a timer.
- Added handling of
StackTrace
objects for errors encountered in a schedule:- All logged errors now include the stack trace, if any.
- All action error continuations now receive the stack trace, if any.
- When a schedule is in STATE_ERROR the
stackTrace
getter may be used to access the stack trace associated with theerror
, if any.
- Updated to SDK 0.8.10_r29803.
- Updated to SDK 0.8.7_r29341.
- Updated to SDK 0.7.6_r28108.
- Added an
isIdle
getter to theSchedule
and renamed thebusy
getter toisBusy
; the new getterisIdle
is for convenience and is equal to!isBusy
.
- Updated to SDK 0.7.1_r27025.
- Added support for non-undoable actions. An undo function is now an optional
argument when constructing an action, and if it is
null
then the action'scanUndo
field will be false. Non-undoable actions may be executed on a schedule in the same manner as undoable actions, and the order of their execution is guaranteed. However, the non-undoable action is not preserved in the history list (undo stack) and does not affect the state of the schedule in any way.
- Updated to SDK 0.6.21_r26639.
- Updated to SDK 0.6.19_r26297.
- Added the
bench
package todev_dependencies
to run the unit tests. - Removed the
undone.mirrors
library as I believe it only added confusion; if you have a need for the removedSetFieldAction
please open an issue in the tracker.
- Updated to SDK 0.5.20.2_r24160.
- Updated to SDK 0.5.13_r23552.
- Switched
states
stream to use the newStreamController.broadcast
that was re-introduced in this SDK version. With this change theSchedule
is no longer responsible for checking the paused state (a broadcast stream controller is never considered paused) before adding events to the stream; each subscription will buffer events itself when paused. - Added
Future<String> wait(String state)
method toSchedule
and updated the tests to use this instead of their former utility function equivalent; the motivation for this is that I have other use cases for this function now outside of testing.
- Updated to SDK 0.5.11_r23200.
- Added
mirrors.dart
library with aSetField
action; this is a separate library so that users conciously import it and its dependency ondart:mirrors
.
- Updated to SDK 0.5.7_r22611.
- Handle the change to Completer behavior; they are now completed asynchronously by default. A schedule will now flush pending actions at the end of the series of asynchronous events trigerred by its completers, making it more bulletproof.
- Updated to SDK 0.5.3_r22223.
- Avoid streaming
states
events unless there is a listener and the stream is not paused. This avoids potential memory leaks that might arise with buffered events.
- Updated to SDK 0.5.0_r21823.
- Updated to SDK 0.4.7_r21548.
- Updated to SDK 0.4.4_r20810.
- Switched to using
assert
for dead code removal of logging code instead of aconst bool
; the old mechanism required users to modify the library code to enable logging, which was not ideal. Now, logging will be enabled in 'checked' mode and it will be stripped in 'production' mode.
- Changed the type of
Schedule.states
toStream<String>
and states are now enumerated asstatic const String
.
- Added logging code to the library; default disabled for dead code elimination.
- Fixed a number of bugs.
- Removed the Timer-based
wait
utility function from the tests.
- Added
timeoutMs
towait
test utility function; drone.io was hanging since the new SDK (0.4.3_r20444) so this was added to try and catch the error but now the error is not reproducing. This should catch future test hangs.
- Updated to SDK 0.4.3_r20444.
- Added a link to an article in the README.
- Added
documentation
link to pubspec.
- README and dartdoc improvements.
- README improvements.
- Updated to SDK 0.4.2_r20259.
- Moved
unittest
todev_dependencies
. - Bug fix: continuations on undo(), redo(), to() are now called before we flush pending actions; this ensures continuations see things as a result of the operation they are chained to.
- Added
homepage
to pubspec.
- Initial release.