Class: Ucode::Audit::ScriptAggregator
- Inherits:
-
Object
- Object
- Ucode::Audit::ScriptAggregator
- Defined in:
- lib/ucode/audit/script_aggregator.rb
Overview
Produces one Models::Audit::ScriptSummary per touched Unicode script for a font’s cmap codepoint set, compared against a ucode UCD baseline.
Pure transformation: takes the resolved baseline Database + the font’s codepoint list, returns ScriptSummary[].
v1 scope: uses the Scripts.txt primary-script lookup (one ISO 15924 code per codepoint). ScriptExtensions — where a single codepoint contributes to multiple scripts (e.g. punctuation used across Latn, Grek, Cyrl) — requires a Database schema bump and is intentionally deferred.
Instance Method Summary collapse
-
#call(codepoints) ⇒ Array<Models::Audit::ScriptSummary>
Sorted by script_code.
-
#initialize(database) ⇒ ScriptAggregator
constructor
A new instance of ScriptAggregator.
Constructor Details
#initialize(database) ⇒ ScriptAggregator
Returns a new instance of ScriptAggregator.
19 20 21 |
# File 'lib/ucode/audit/script_aggregator.rb', line 19 def initialize(database) @database = database end |
Instance Method Details
#call(codepoints) ⇒ Array<Models::Audit::ScriptSummary>
Returns sorted by script_code.
25 26 27 28 29 30 31 |
# File 'lib/ucode/audit/script_aggregator.rb', line 25 def call(codepoints) return [] if @database.nil? || codepoints.empty? grouped = group_by_script(codepoints) grouped.map { |code, covered| build_summary(code, covered) } .sort_by(&:script_code) end |