Library for dispatching and listening events.
Events are dispatched by EventSource
.
let source = EventSource<String>()
// listen
let listener = source.listen { message in
print(message)
}
// dispatch
source.fire("Hello, World!")
// unlisten
listener.unlisten()
There is a utility class ListenerStore
which holds listeners and makes it possible to unlisten them all later.
let store = ListenerStore()
let source1 = EventSource<String>()
let source2 = EventSource<Int>()
// listen
source1.listen { message in
print("listener 1: \(message)")
}.addToStore(store)
source1.listen { message in
print("listener 2: \(message)")
}.addToStore(store)
source2.listen { value in
print("listener 3: \(value)")
}.addToStore(store)
// dispatch
source1.fire("foo")
source2.fire(10)
// unlisten all
store.unlistenAll()
- iOS 8.0+
- OS X 10.9+
- watchOS 2.0+
- tvOS 9.0+
- Swift 5.1+
Eventitic is available through CocoaPods. To install it, simply add the following lines to your Podfile:
use_frameworks!
pod "Eventitic", '~> 5.0'
Eventitic is available through Carthage. To install it, simply add the following line to your Cartfile:
github "hironytic/Eventitic" ~> 5.0
Eventitic is available through Swift Package Manager.
To install it, add dependency to your Package.swift
file like following:
import PackageDescription
let package = Package(
name: "Hello",
dependencies: [
.package(url: "https://github.com/hironytic/Eventitic.git", from: "5.0.0"),
],
...
)
Hironori Ichimiya, hiron@hironytic.com
Eventitic is available under the MIT license. See the LICENSE file for more info.