<commit_before>//
//  String+rDNS.swift
//  Dough
//
//  Created by <NAME> on 3/5/17.
//  Copyright © 2017 Two Ring Software. All rights reserved.
//

import Foundation

let rDNSDomain = "com.tworingsoft"

extension String {

    init(asRDNSForApp app: String, domain: String, subpaths: [String]? = nil) {
        self = String(format: "%@.%@.%@%@", rDNSDomain, app, domain, subpaths != nil && subpaths!.count > 0 ? ".".appending(subpaths!.joined(separator: ".")) : "").lowercased()
    }

}<commit_msg>improve rdns init to avoid force unwraps<commit_after>//
//  String+rDNS.swift
//  Dough
//
//  Created by <NAME> on 3/5/17.
//  Copyright © 2017 Two Ring Software. All rights reserved.
//

import Foundation

let rDNSDomain = "com.tworingsoft"

extension String {

    init(asRDNSForApp app: String, domain: String, subpaths: [String]? = nil) {
        var subpathString = ""
        if let subpaths = subpaths, subpaths.count > 0 {
            subpathString = ".".appending(subpaths.joined(separator: "."))
        }
        self = String(format: "%@.%@.%@%@", rDNSDomain, app, domain, subpathString).lowercased()
    }

}
{'fraction_non_alphanumeric': 0.16518650088809947, 'fraction_numerical': 0.015985790408525755, 'mean_word_length': 2.99645390070922, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, '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': '3937257', 'n_tokens_mistral': 420, 'n_tokens_neox': 385, 'n_words': 97}