Skip to content

Instantly share code, notes, and snippets.

@ha1f
Last active January 8, 2019 07:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ha1f/c4ce100c9b5e0033e7ea575382735a92 to your computer and use it in GitHub Desktop.
Save ha1f/c4ce100c9b5e0033e7ea575382735a92 to your computer and use it in GitHub Desktop.
protocol Drinkable {
}
struct 🍶: Drinkable {}
struct 🍺: Drinkable {}
struct 🍸: Drinkable {}
struct Person {
}
extension Person: ObserverType {
public func on(_: Event<Drinkable>) {
print("happy!")
}
}
class Nomikai {
private let publisher = PublishSubject<Drinkable>()
private let disposeBag = DisposeBag()
func join(_ person: Person) {
publisher
.subscribe(person)
.disposed(by: disposeBag)
}
func serve() {
publisher.onNext(🍶())
publisher.onNext(🍺())
publisher.onNext(🍸())
}
}
func startNomikai() {
let nomikai = Nomikai()
let person = Person()
nomikai.join(person)
while true {
nomikai.serve()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment