0001    //
0002    //  Debug.swift
0003    //  RxSwift
0004    //
0005    //  Created by Krunoslav Zaher on 5/2/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    let dateFormat
Debug.swift:26
        _timestampFormatter.dateFormat = dateFormat
= "yyyy-MM-dd HH:mm:ss.SSS" 0012 0013 func logEvent
Debug.swift:28
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "subscribed")
Debug.swift:40
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "Event \(eventNormalized)")
Debug.swift:45
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "disposed")
(idenfifier: String, dateFormat: NSDateFormatter, content: String) { 0014 print("\(dateFormat.stringFromDate(NSDate())): \(idenfifier) -> \(content)") 0015 } 0016 0017 class Debug_
Debug.swift:73
        let sink = Debug_(parent: self, observer: observer)
<O
Debug.swift:17
class Debug_<O: ObserverType> : Sink<O>, ObserverType {
Debug.swift:18
    typealias Element = O.E
Debug.swift:24
    init(parent: Parent, observer: O) {
: ObserverType> : Sink<O>, ObserverType { 0018 typealias Element
Debug.swift:19
    typealias Parent = Debug<Element>
Debug.swift:33
    func on(event: Event<Element>) {
= O.E 0019 typealias Parent
Debug.swift:21
    private let _parent: Parent
Debug.swift:24
    init(parent: Parent, observer: O) {
= Debug<Element> 0020 0021 private let _parent
Debug.swift:25
        _parent = parent
Debug.swift:28
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "subscribed")
Debug.swift:40
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "Event \(eventNormalized)")
Debug.swift:45
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "disposed")
: Parent 0022 private let _timestampFormatter
Debug.swift:26
        _timestampFormatter.dateFormat = dateFormat
Debug.swift:28
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "subscribed")
Debug.swift:40
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "Event \(eventNormalized)")
Debug.swift:45
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "disposed")
= NSDateFormatter() 0023 0024 init
Debug.swift:73
        let sink = Debug_(parent: self, observer: observer)
(parent: Parent, observer: O) { 0025 _parent = parent 0026 _timestampFormatter.dateFormat = dateFormat 0027 0028 logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "subscribed") 0029 0030 super.init(observer: observer) 0031 } 0032 0033 func on(event: Event<Element>) { 0034 let maxEventTextLength = 40 0035 let eventText = "\(event)" 0036 let eventNormalized = eventText.characters.count > maxEventTextLength 0037 ? String(eventText.characters.prefix(maxEventTextLength / 2)) + "..." + String(eventText.characters.suffix(maxEventTextLength / 2)) 0038 : eventText 0039 0040 logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "Event \(eventNormalized)") 0041 forwardOn(event) 0042 } 0043 0044 override func dispose() { 0045 logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "disposed") 0046 super.dispose() 0047 } 0048 } 0049 0050 class Debug
Debug.swift:19
    typealias Parent = Debug<Element>
Observable+Debug.swift:26
        return Debug(source: self.asObservable(), identifier: identifier, file: file, line: line, function: function)
<Element
Debug.swift:50
class Debug<Element> : Producer<Element> {
Debug.swift:53
    private let _source: Observable<Element>
Debug.swift:55
    init(source: Observable<Element>, identifier: String?, file: String, line: UInt, function: String) {
Debug.swift:72
    override func run<O: ObserverType where O.E == Element>(observer: O) -> Disposable {
> : Producer<Element> { 0051 private let _identifier
Debug.swift:28
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "subscribed")
Debug.swift:40
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "Event \(eventNormalized)")
Debug.swift:45
        logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "disposed")
Debug.swift:57
            _identifier = identifier
Debug.swift:67
            _identifier = "\(trimmedFile):\(line) (\(function))"
: String 0052 0053 private let _source
Debug.swift:69
        _source = source
Debug.swift:74
        sink.disposable = _source.subscribe(sink)
: Observable<Element> 0054 0055 init
Observable+Debug.swift:26
        return Debug(source: self.asObservable(), identifier: identifier, file: file, line: line, function: function)
(source: Observable<Element>, identifier: String?, file: String, line: UInt, function: String) { 0056 if let identifier = identifier { 0057 _identifier = identifier 0058 } 0059 else { 0060 let trimmedFile: String 0061 if let lastIndex = file.lastIndexOf("/") { 0062 trimmedFile = file[lastIndex.successor() ..< file.endIndex] 0063 } 0064 else { 0065 trimmedFile = file 0066 } 0067 _identifier = "\(trimmedFile):\(line) (\(function))" 0068 } 0069 _source = source 0070 } 0071 0072 override func run<O: ObserverType where O.E == Element>(observer: O) -> Disposable { 0073 let sink = Debug_(parent: self, observer: observer) 0074 sink.disposable = _source.subscribe(sink) 0075 return sink 0076 } 0077 }