UndoProxy 0.2.0

UndoProxy 0.2.0

Carl 维护。



 
依赖
RxSwift~> 5.0
RxCocoa~> 5.0
 

UndoProxy 0.2.0

UndoProxy

Version License Platform

Manaul

import UndoProxy

enum Action: Undoable {
    case add(_ num: Int)
    case minus(_ num: Int)

    var opposite: Action {
        switch self {
        case .add(let val): return .minus(val)
        case .minus(let val): return .add(val)
        }
    }
}

class Calculator {
    var undoProxy = UndoProxy<Action>()
    var value: Int
    let disposeBag = DisposeBag()

    init(value: Int) {
        self.value = value
        undoProxy.signal
            .subscribe(onNext: { (action) in
                switch action {
                case .add(let val):
                    self.value += val
                case .minus(let val):
                    self.value -= val
                }
            })
            .disposed(by: disposeBag)
    }

    func API() {
      undoProxy.register(.add(1))
      undoProxy.dispatch(.add(1))
      undoProxy.dispatch([.add(1), .add(2)])
      undoProxy.canUndo
      undoProxy.canRedo
      undoProxy.undo()
      undoProxy.redo()
    }
}

安装

CocoaPods

pod 'UndoProxy', '~> 0.1'

Swift 包管理器

.package(url: "https://github.com/rxpipe/UndoProxy.git")

作者

duan, [email protected]

许可协议

RxTheme 在 MIT 许可协议下提供。有关更多信息,请参阅 LICENSE 文件。