Skip to content

Reactive extension for the EnumKit framework to enable easy working with observables streams of events as enum cases

License

Notifications You must be signed in to change notification settings

gringoireDM/RxEnumKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a7572f7 · Jan 4, 2021

History

34 Commits
Jan 4, 2021
Aug 22, 2019
Apr 8, 2020
Aug 22, 2019
Aug 22, 2019
Aug 20, 2019
Aug 19, 2019
Jan 4, 2021
Aug 22, 2019
Jan 4, 2021
Jan 4, 2021
Jan 4, 2021
Feb 27, 2020
Aug 20, 2019
Jan 4, 2021
Aug 22, 2019

Repository files navigation

RxEnumKit

Build Status Swift Package Manager cocoapods

RxEnumKit is the reactive extension of EnumKit. It extends ObservableType and SharedSequenceConvertibleType to add flexibility while working with stream of enum cases.

With RxEnumKit you'll be able to extract associated values from each CaseAccessible enum element of the stream, map, compactMap, flatMap, filter and exclude cases.

Having a CaseAccessible enum, and an Observable

enum MyEvent: CaseAccessible {
    case eventA(String)
    case eventB(foo: Int)
}

let observable: Observable<MyEvent>

With RxEnumKit the following patterns will be possible:

observable.capture(case: MyEvent.eventA)
    .subscribe(onNext: { value in //String
        ...
    })

observable.map(case: MyEvent.eventB, String.init)
    .subscribe(onNext: { value in // String
        ...
    })

Requirements

  • Xcode 11
  • Swift 5.1

Installation

RxEnumKit offers cocoapods and swiftPM

Via Cocoapods

# Podfile
use_frameworks!

target 'YOUR_TARGET_NAME' do
    pod 'RxEnumKit', '~> 1.0.2'
end

Replace YOUR_TARGET_NAME and then, in the Podfile directory, type:

$ pod install

via Swift Package Manager

Create a Package.swift file.

// swift-tools-version:5.0

import PackageDescription

let package = Package(
  name: "YourProjectName",
  dependencies: [
    .package(url: "https://github.com/gringoireDM/RxEnumKit.git", from: "1.0.2")
  ],
  targets: [
    .target(name: "YourProjectName", dependencies: ["RxEnumKit"])
  ]
)
$ swift build

About

Reactive extension for the EnumKit framework to enable easy working with observables streams of events as enum cases

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published