wassimseif/tailorf

View on GitHub
Sources/tailorf/Models/File/File.swift

Summary

Maintainability
A
1 hr
Test Coverage
//
//  File.swift
//  tailorf
//
//  Created by Wassim on 9/30/16.
//
//

import Foundation
import Mustache

class File: NSObject {
    var path : String!
    var parsed : Bool!
    var violations : [Violation]? = nil
    
    init(atPath path : String , didParse parsed : Bool , havingViolations violations : [Violation]?){
        self.path = path
        self.parsed = parsed
        self.violations = violations
    }
    class func initFrom(Object object : AnyObject) -> File? {
        guard let path = object["path"] as? String else {
            return nil
        }
        guard let parsed = object["parsed"] as? Bool else {
            return nil
        }
        
        guard let violationsAsArrayOfAnyObjects = object["violations"] as? [AnyObject] else {
            return nil
        }
        
        if !parsed{
            return File(atPath: path, didParse: parsed, havingViolations: nil)
        }
        
        var violations = [Violation]()
        for violation in violationsAsArrayOfAnyObjects{
            let newViolation = Violation.initFrom(Object: violation)
            if newViolation != nil {
                violations.append(newViolation!)
            }
        }
        return File(atPath: path, didParse: parsed, havingViolations: violations)
    }
}
extension File {
    override var mustacheBox: MustacheBox {
        return Box([
            "name" : String((String(path.characters.reversed()).components(separatedBy: "/")[0]).characters.reversed()),
            "parsed": parsed!,
            "violations": violations ,
            ])
    }
    
}