Skip to content

stevenlevin/Eventitic

 
 

Repository files navigation

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 2.2+

Installation

CocoaPods

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

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

Carthage

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

github "hironytic/Eventitic" ~> 1.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", majorVersion: 1),
    ]
)

Author

Hironori Ichimiya, hiron@hironytic.com

License

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

About

Dispatching and listening events

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 85.4%
  • Objective-C 8.7%
  • Ruby 5.9%