Skip to content

Commit 520f9ee

Browse files
committed
Updated RxTimer to a modern RxSwift syntax approach
1 parent 306a6c6 commit 520f9ee

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

Example/Screen/ViewController.swift

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ class ViewController: UIViewController {
2424

2525
override func viewDidAppear(_ animated: Bool) {
2626
super.viewDidAppear(animated)
27-
Timer
28-
.rx_timer
27+
Timer.rx.timer
2928
.map { _ in
3029
self.viewModel.tick()
3130
}

RxTimer/Sources/Timer+Rx.swift

+8-8
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88
import Foundation
99
import RxSwift
1010

11-
public extension Timer {
11+
public extension Reactive where Base: Timer {
1212

13-
class var rx_timer: Observable<Void> {
14-
return rx_timer(1.0)
13+
static var timer: Observable<Void> {
14+
return timer(1.0)
1515
}
1616

17-
class func rx_timer(_ time: TimeInterval) -> Observable<Void> {
17+
static func timer(_ time: TimeInterval) -> Observable<Void> {
1818
return Observable<Void>.create { observer in
1919
observer.onNext(())
20-
let timer = Timer.schedule(repeatInterval: time) {
20+
let timer = Timer.rx.schedule(repeatInterval: time) {
2121
observer.onNext(())
2222
}
2323
return Disposables.create {
@@ -28,7 +28,7 @@ public extension Timer {
2828
}
2929
}
3030

31-
private extension Timer {
31+
private extension Reactive where Base: Timer {
3232
/*
3333
Creates and schedules a one-time `NSTimer` instance.
3434

@@ -37,7 +37,7 @@ private extension Timer {
3737
- handler: A closure to execute after `delay`.
3838
- Returns: The newly-created `NSTimer` instance.
3939
*/
40-
class func schedule(delay: TimeInterval, handler: @escaping ()->()) -> Timer {
40+
static func schedule(delay: TimeInterval, handler: @escaping ()->()) -> Timer {
4141
let fireDate = delay + CFAbsoluteTimeGetCurrent()
4242
let timer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, fireDate, 0, 0, 0) { theTimer in
4343
handler()
@@ -57,7 +57,7 @@ private extension Timer {
5757
- handler: A closure to execute at each `repeatInterval`.
5858
- Returns: The newly-created `NSTimer` instance.
5959
*/
60-
class func schedule(repeatInterval interval: TimeInterval, handler: @escaping () -> Void)
60+
static func schedule(repeatInterval interval: TimeInterval, handler: @escaping () -> Void)
6161
-> Timer {
6262
let fireDate = interval + CFAbsoluteTimeGetCurrent()
6363
let timer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, fireDate, interval, 0, 0) {

0 commit comments

Comments
 (0)