event 1.1.4 event: ^1.1.4 copied to clipboard
Create lightweight custom Events, that allow interested subscribers to be notified that something has happened.
Changelog - Event #
Version 1.1.4 (2020-06-10) #
-
Added a
subscribeStream
method to Event, which supports the broadcasting of Events to a DartStream
[StreamSink].This allows a sequence of broadcast Events to be represented and manipulated as a Dart
Stream
. The rich range of mechanisms to filter and manipulate Streams become available.Remember that the supplied [StreamSink] should be closed when no longer needed.
// Example var e = Event(); var sc = StreamController(); e.subscribeStream(sc.sink); e.broadcast(); sc.stream.listen((e) => print('boom')); sc.close();
Version 1.1.3 (2020-02-14) #
- BasicEventArgs renamed to StdEventArgs for clarity.
Version 1.1.2 (2020-02-09) #
- EventArgs changes
- Added
BasicEventArgs
as a standardEventArgs
derived type. It includes awhenOccurred
field that contains the date and time the Event wasbroadcast
, as well as an optionaldescription
field. - Renamed
EventArgs1
andEventArgs2
toGenericEventArgs1
andGenericEventArgs2
respectively, to better indicate their purpose. Both are now derived fromBasicEventArgs
, meaning that they havewhenOccurred
and (optional)description
fields. - Improvements to documentation
- Added
- Minor improvements to Event documentation.
Version 1.1.1 (2020-02-03) #
- Add new method
unsubscribeAll
, to unsubscribe all subscribers (handlers).
Version 1.1.0 (2020-01-29) #
Breaking Change
The function signature for an Event has been simplified. The sender
argument has been removed, leaving only the need to provide an optional argument
derived from type EventArgs
.
The sender
argument was previously intended to be used to provide the source of the Event, or the object in which the Event was declared, to a subscriber. This can be equally well done within an EventArg passed as an argument to a subscriber.
// Before
// subscribe to onValueChanged Event
myCounter.onValueChanged + (sender, args) => print('before');
// Now
// subscribe to onValueChanged Event
myCounter.onValueChanged + (args) => print('after');
Other Breaking Changes
- Renamed
addHandler
andremoveHandler
methods tosubscribe
andunsubscribe
respectively. - Renamed
raise
methods tobroadcast
. - Method
broadcastWithSubject
removed to reflect to removal ofsender
described above. - The
count
method has been renamed to `subscriberCount'
Other
- Two general purpose EventArg derived classes (
EventArgs1
andEventArgs2
) have been included, which offers a quick alternative to producing your own custom EventArgs class.
EventArgs1 supports one generic value, while EventArgs2 supports two. Example:-
// EventArgs1 (one value)
var e = Event<EventArgs1<String>>();
e.subscribe((args) => print(args.value));
e.broadcast(EventArgs1('hello'));
// prints hello
// EventArgs2 (two values)
var e = Event<EventArgs2<String, int>>();
e.subscribe((args) => print('${args.value1} - ${args.value2}'));
e.broadcast(EventArgs2('boom', 37));
// prints boom - 37
Version 1.0.3 (2020-01-22) #
- Added image of elevator example to README.
Version 1.0.2 (2020-01-22) #
- Updated reference to Flutter EventSubscriber in the README.
- Minor documentation improvements
Version 1.0.1 (2020-01-22) #
- Documentation improvements and corrections
Version 1.0.0 (2020-01-22) #
- Initial release