// // Section.swift // // // Created by Thibaut Schmitt on 04/01/2022. // import Foundation class Section { // MARK: - Properties let name: String // OnBoarding var definitions = [Definition]() // MARK: - Init init(name: String) { self.name = name } // MARK: - Methods static func match(_ line: String) -> Section? { guard line.range(of: "\\[\\[(.*?)]]$", options: .regularExpression, range: nil, locale: nil) != nil else { return nil } let sectionName = line .replacingOccurrences(of: ["[", "]"], with: "") .removeLeadingTrailingWhitespace() return Section(name: sectionName) } func hasOneOrMoreMatchingTags(tags: [String]) -> Bool { let allTags = definitions.flatMap { $0.tags } let allTagsSet = Set(allTags) let intersection = Set(tags).intersection(allTagsSet) if intersection.isEmpty { return false } return true } }