CocoaPods trunk is moving to be read-only. Read more on the blog, there are 17 months to go.

Eventitic 5.0.0

Eventitic 5.0.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Oct 2019
SPMSupports SPM

Maintained by Hironori Ichimiya.



Eventitic 5.0.0

  • By
  • Hironori Ichimiya

Eventitic

CI Status Version License Platform Carthage compatible

Library for dispatching and listening events.

Usage

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()

Requirements

  • iOS 8.0+
  • OS X 10.9+
  • watchOS 2.0+
  • tvOS 9.0+
  • Swift 5.1+

Installation

CocoaPods

Eventitic is available through CocoaPods. To install it, simply add the following lines to your Podfile:

use_frameworks!
pod "Eventitic", '~> 5.0'

Carthage

Eventitic is available through Carthage. To install it, simply add the following line to your Cartfile:

github "hironytic/Eventitic" ~> 5.0

Swift Package Manager

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"),
    ],
    ...
)

Author

Hironori Ichimiya, [email protected]

License

Eventitic is available under the MIT license. See the LICENSE file for more info.