class Translatomatic::Translation::Sharer

Share translations with providers

Public Class Methods

new(options = {}) click to toggle source
# File lib/translatomatic/translation/sharer.rb, line 5
def initialize(options = {})
  @options = options
end

Public Instance Methods

share(collection) click to toggle source

@param collection [Translatomatic::Translation::Collection]

Translation collection

@return [void]

# File lib/translatomatic/translation/sharer.rb, line 12
def share(collection)
  return if collection.empty?

  tmx = Translatomatic::TMX::Document.from_collection(collection)
  available = Translatomatic::Provider.available(@options)
  available.each do |provider|
    if provider.respond_to?(:upload)
      log.info(t('sharer.uploading_tmx', name: provider.name))
      provider.upload(tmx)
    end
  end

  ActiveRecord::Base.transaction do
    db_texts.each do |text|
      text.update(shared: true) if text.translated?
    end
  end
end