resources/asciidoctor/lib/alternative_language_lookup/report.rb (37 lines of code) (raw):
# frozen_string_literal: true
require 'json'
module AlternativeLanguageLookup
##
# Reports on the result of processing a lookup.
class Report
def self.open(path)
File.open path, 'w' do |f|
f.print '['
yield Report.new f
f.print "]\n"
end
end
def initialize(file)
@file = file
@first = true
end
def report(listing, found_langs)
if @first
@first = false
else
@file.print ','
end
@file.print "\n"
@file.print json(listing, found_langs)
end
def json(listing, found_langs)
JSON.generate(
source_location: {
file: listing.source_location.path,
line: listing.source_location.lineno,
},
digest: listing.digest,
lang: listing.lang,
found: found_langs,
source: listing.source
)
end
end
end