Sha256: 6311dc1e94fd3a619a6ec22aef90dc7fbf5d583aaf7eb7fef85372ea6953e0f5
Contents?: true
Size: 1.2 KB
Versions: 6
Compression:
Stored size: 1.2 KB
Contents
require "creek" require "yaml" require "pathname" require_relative "information_sheet" require_relative "terminology_sheet" module Tc211::Termbase class TermWorkbook attr_accessor :workbook, :glossary_info, :languages, :filename SPECIAL_SHEETS = [ "Glossary Information", "Character Encoding Spreadsheet", ].freeze def initialize(filepath) @filename = filepath @workbook = Creek::Book.new(filepath) @glossary_info = InformationSheet.new( find_sheet_by_name("Glossary Information"), ) @languages = languages_supported self end def languages_supported @workbook.sheets.map(&:name).reject! do |name| SPECIAL_SHEETS.include?(name) end end def language_sheet(lang) raise unless @languages.include?(lang) TerminologySheet.new(find_sheet_by_name(lang)) end def find_sheet_by_name(sheet_name) @workbook.sheets.detect do |sheet| sheet.name == sheet_name end end def write_glossary_info glossary_info_fn = Pathname.new(@filename).sub_ext(".yaml") File.open(glossary_info_fn, "w") do |file| file.write(glossary_info.to_yaml) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems