<commit_before>//
//  UIImageView+Vulcan.swift
//  Vulcan
//
//  Created by <NAME> on 2017/04/23
//  Copyright © 2017年 Sasakky. All rights reserved.
//

import UIKit

private var kVulcanKey: UInt = 0

public extension UIImageView {

    public var vl: Vulcan {
        get {
            let vulcan = objc_getAssociatedObject(self, &kVulcanKey) as? Vulcan ?? Vulcan()
            if vulcan.imageView == nil {
                vulcan.imageView = self
            }
            return vulcan
        }
        set {
            objc_setAssociatedObject(self, &kVulcanKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        }
    }
}<commit_msg>:art: Avoid to set `UIImageView#vl` and Recycle vulcan instance<commit_after>//
//  UIImageView+Vulcan.swift
//  Vulcan
//
//  Created by <NAME> on 2017/04/23
//  Copyright © 2017年 Sasakky. All rights reserved.
//

import UIKit

private var kVulcanKey: UInt = 0

public extension UIImageView {

    public var vl: Vulcan {
        if let vulcan = objc_getAssociatedObject(self, &kVulcanKey) as? Vulcan {
            return vulcan
        }
        let vulcan = Vulcan()
        if vulcan.imageView == nil {
            vulcan.imageView = self
        }
        objc_setAssociatedObject(self, &kVulcanKey, vulcan, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        return vulcan
    }
}
{'fraction_non_alphanumeric': 0.09386828160484481, 'fraction_numerical': 0.01968205904617714, 'mean_word_length': 2.20873786407767, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '961229', 'n_tokens_mistral': 484, 'n_tokens_neox': 449, 'n_words': 109}