Kugel

[Deprecated] A glorious Swift wrapper around NSNotificationCenter

Showing:

Popularity

Downloads/wk

0

GitHub Stars

76

Maintenance

Last Commit

5yrs ago

Contributors

2

Package

Dependencies

0

License

MIT

Categories

Readme

Kugel

Tests Platforms Languages Cocoapods

A glorious Swift wrapper around NSNotificationCenter.

⚠️ Deprecated ⚠️

This library is deprecated and will not be maintained anymore.

With Swift 3, working with NotificationCenter is more concise so we recommend using NotificationCenter.default directly.

The only feature that Kugel had over using NotificationCenter was to subscribe to multiple events at once using a notification name => selector map, but this can be easily implemented in your own code using the following extension:

extension NotificationCenter {
    func addObserver(_ observer: Any, _ namesAndSelectors: [NSNotification.Name: Selector], object: Any? = nil) {
        for (name, selector) in namesAndSelectors {
            addObserver(observer, selector: selector, name: name, object: object)
        }
    }
    func removeObserver(_ observer: Any, names: [NSNotification.Name], object: Any? = nil) {
        for name in names {
            removeObserver(observer, name: name, object: object)
        }
    }
}

Install

pod 'Kugel'

Usage

Publish

Kugel.publish("NotificationName")
Kugel.publish("NotificationName", object: anObject)
Kugel.publish("NotificationName", userInfo: ["foo": "bar"])
Kugel.publish("NotificationName", object: anObject, userInfo: ["foo": "bar"])
Kugel.publish(NSNotification(name: "NotificationName"))

Subscribe

let token = Kugel.subscribe("NotificationName") { notification in }

Kugel.subscribe(self, name: "NotificationName", selector: "onNotificationReceived:")

Kugel.subscribe(self, name: "NotificationName", selector: "onNotificationReceived:", object: object)

Kugel.subscribe(self, [
    "NotificationName1": "onNotification1Received:",
    "NotificationName2": "onNotification2Received:",
])

Kugel.subscribe(self, [
    "NotificationName1": "onNotification1Received:",
    "NotificationName2": "onNotification2Received:",
], object: object)

Unsubscribe

Kugel.unsubscribe(token)

Kugel.unsubscribe(self, name: "NotificationName")

Kugel.unsubscribe(self, name: "NotificationName", object: object)

Kugel.unsubscribe(self, [
    "NotificationName1",
    "NotificationName2"
])

Kugel.unsubscribe(self, [
    "NotificationName1",
    "NotificationName2"
], object: object)

Kugel.unsubscribe(self)

License

This project is copyrighted under the MIT license. Complete license can be found here: https://github.com/TakeScoop/Kugel/blob/master/LICENSE

Bone icon made by Freepik from http://www.flaticon.com

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100