resources/asciidoctor/lib/alternative_language_lookup/summary.rb (26 lines of code) (raw):
# frozen_string_literal: true
require 'json'
module AlternativeLanguageLookup
##
# Summary of the alternative language listings included to be processed by
# other tools.
class Summary
def initialize(path, lookups)
@path = path
@data = {}
lookups.each do |source_lang, lang_lookups|
@data[source_lang] = sdata = { total: 0, alternatives: {} }
lang_lookups.each do |lookup|
sdata[:alternatives][lookup.alternative_lang] = { found: 0 }
end
end
end
def on_listing(listing, found_langs)
sdata = @data[listing.key_lang]
sdata[:total] += 1
adata = sdata[:alternatives]
found_langs.each { |alt| adata[alt][:found] += 1 }
end
def save
File.open @path, 'w:UTF-8' do |f|
f.write JSON.pretty_generate(@data)
end
end
end
end