From 4343848549480bc1d1d58021baaa10fc3f8f7e7a Mon Sep 17 00:00:00 2001 From: Shibo Lyu Date: Fri, 20 May 2022 13:18:06 +0800 Subject: [PATCH] fix: Publish functions. --- Sources/Readability/CommonMetrics.swift | 6 +++--- .../Readability/Scorers/FleschKincaidGrade.swift | 8 +++++--- .../Readability/Scorers/FleschReadingEase.swift | 8 +++++--- Sources/Readability/ScoringTask.swift | 16 +++++++++------- Sources/Readability/Tokenization.swift | 6 +++--- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Sources/Readability/CommonMetrics.swift b/Sources/Readability/CommonMetrics.swift index 0329518..44ccd4c 100644 --- a/Sources/Readability/CommonMetrics.swift +++ b/Sources/Readability/CommonMetrics.swift @@ -17,11 +17,11 @@ public enum RACommonMetric { } public struct RACommonMetricsCalculator { - typealias Results = [RACommonMetric: Double] + public typealias Results = [RACommonMetric: Double] private var metrics: Set - init(metrics: Set) { + public init(metrics: Set) { self.metrics = metrics } @@ -29,7 +29,7 @@ public struct RACommonMetricsCalculator { SyllableCounter.shared.count(word: word) } - func calculate(on text: String) -> Results { + public func calculate(on text: String) -> Results { let shouldDoSentences = metrics.contains(.sentenceCount) || metrics.contains(.avgWordsPerSentence) let shouldDoWords = metrics.contains(.wordCount) || metrics.contains(.avgWordsPerSentence) diff --git a/Sources/Readability/Scorers/FleschKincaidGrade.swift b/Sources/Readability/Scorers/FleschKincaidGrade.swift index cf7fabb..eb6a8cc 100644 --- a/Sources/Readability/Scorers/FleschKincaidGrade.swift +++ b/Sources/Readability/Scorers/FleschKincaidGrade.swift @@ -8,18 +8,20 @@ import Foundation public struct RAFleschKincaidGradeScorer: RAScorer { - static let requiresCommonMetrics: Set? = [ + public static let requiresCommonMetrics: Set? = [ .avgWordsPerSentence, .avgSyllablesPerWord ] - static let meta = RAScorerMeta( + public static let meta = RAScorerMeta( name: "Flesch-Kincaid Grade", creator: "John P. Kincaid", citation: "Kincaid, J. P., Fishburne Jr, R. P., Rogers, R. L., & Chissom, B. S. (1975). Derivation of new readability formulas (automated readability index, fog count and flesch reading ease formula) for navy enlisted personnel. Naval Technical Training Command Millington TN Research Branch." ) - func score(_ text: String, metrics: RACommonMetricsCalculator.Results?) -> Double { + public init() {} + + public func score(_ text: String, metrics: RACommonMetricsCalculator.Results?) -> Double { let asl = metrics![.avgWordsPerSentence]! let asw = metrics![.avgSyllablesPerWord]! diff --git a/Sources/Readability/Scorers/FleschReadingEase.swift b/Sources/Readability/Scorers/FleschReadingEase.swift index 9643cef..5931009 100644 --- a/Sources/Readability/Scorers/FleschReadingEase.swift +++ b/Sources/Readability/Scorers/FleschReadingEase.swift @@ -8,18 +8,20 @@ import Foundation public struct RAFleschReadingEaseScorer: RAScorer { - static let requiresCommonMetrics: Set? = [ + public static let requiresCommonMetrics: Set? = [ .avgWordsPerSentence, .avgSyllablesPerWord ] - static let meta = RAScorerMeta( + public static let meta = RAScorerMeta( name: "Flesch Reading Ease", creator: "Rudolf Flesch", citation: "Flesch, R. (1948). A new readability yardstick. Journal of applied psychology, 32(3), 221." ) - func score(_ text: String, metrics: RACommonMetricsCalculator.Results?) -> Double { + public init() {} + + public func score(_ text: String, metrics: RACommonMetricsCalculator.Results?) -> Double { let asl = metrics![.avgWordsPerSentence]! let asw = metrics![.avgSyllablesPerWord]! diff --git a/Sources/Readability/ScoringTask.swift b/Sources/Readability/ScoringTask.swift index 894af06..9af61e8 100644 --- a/Sources/Readability/ScoringTask.swift +++ b/Sources/Readability/ScoringTask.swift @@ -8,21 +8,22 @@ import Foundation public class RAScoringTask { - typealias Results = [Scorer: Double] + public typealias Results = [Scorer: Double] - enum Scorer: Hashable, CaseIterable, Comparable { + public enum Scorer: Hashable, CaseIterable, Comparable { case fleschReadingEase case fleschKincaidGrade } - static let availableScorers: [Scorer: RAScorer.Type] = [ + public static let availableScorers: [Scorer: RAScorer.Type] = [ .fleschReadingEase: RAFleschReadingEaseScorer.self, .fleschKincaidGrade: RAFleschKincaidGradeScorer.self ] - var scorersToRun: Set = Set(Scorer.allCases) + public var scorersToRun: Set = Set(Scorer.allCases) - var scorers: [Scorer: RAScorer.Type] { + /** Derived from `scorersToRun`. */ + public var scorers: [Scorer: RAScorer.Type] { scorersToRun.reduce([:]) { partialResult, scorer in var d = partialResult d[scorer] = Self.availableScorers[scorer]! @@ -30,7 +31,8 @@ public class RAScoringTask { } } - var commonMetricsToGet: Set { + /** Derived from `scorersToRun`. */ + public var commonMetricsToGet: Set { scorers .map { $0.1.requiresCommonMetrics } .reduce([]) { partialResult, scorerMetrics in @@ -39,7 +41,7 @@ public class RAScoringTask { } } - func run(on text: String) -> Results { + public func run(on text: String) -> Results { var commonMetrics: RACommonMetricsCalculator.Results? = nil if !commonMetricsToGet.isEmpty { diff --git a/Sources/Readability/Tokenization.swift b/Sources/Readability/Tokenization.swift index 3c35394..b5648fe 100644 --- a/Sources/Readability/Tokenization.swift +++ b/Sources/Readability/Tokenization.swift @@ -14,7 +14,7 @@ public struct RATokenizer { private var tokenizer: NLTokenizer - init (_ text: String, unit: NLTokenUnit, language: NLLanguage? = nil) { + public init (_ text: String, unit: NLTokenUnit, language: NLLanguage? = nil) { self.text = text self.unit = unit tokenizer = NLTokenizer(unit: unit) @@ -24,8 +24,8 @@ public struct RATokenizer { tokenizer.string = text } - /** Returns token count. */ - func enumerateTokens(using callBack: (String) -> Void) -> Int { + /** - Returns: Token count. */ + public func enumerateTokens(using callBack: (String) -> Void) -> Int { var tokenCount = 0 tokenizer.enumerateTokens(in: text.startIndex..