class Tolq::Parsers::XLSX::Unparser

Unparses a tolq response to XLSX suitable

Public Instance Methods

from_hash(translations, original:, **args) click to toggle source

Unparses a translations hash of key => translation

@param translations [Hash] A hash of translations with key => translation @return [String] A xlsx formatted string

# File lib/xlsx/unparser.rb, line 17
def from_hash(translations, original:, **args)
  translate_xlsx(translations, original: original).stream.read
end
from_tolq_response(tolq_response, original:, **args) click to toggle source

Unparses the tolq response

@param tolq_response [Hash] A parsed response from our api @return [String] A xlsx formatted string

# File lib/xlsx/unparser.rb, line 8
def from_tolq_response(tolq_response, original:, **args)
  translations = tolq_response['translations'].values.first
  translate_xlsx(translations, original: original).stream.read
end

Private Instance Methods

translate_xlsx(translations, original:) click to toggle source
# File lib/xlsx/unparser.rb, line 23
def translate_xlsx(translations, original:)
  workbook = RubyXL::Parser.parse_buffer(original)
  worksheet = workbook.worksheets.first
  translations.each do |k,v|
    row, col = ColumnHelper.from_char_notation(k)
    worksheet[row][col].change_contents(v)
  end
  workbook
end