bodrovis/lokalise_manager

View on GitHub
lib/lokalise_manager.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'zeitwerk'
require 'yaml'

loader = Zeitwerk::Loader.for_gem
loader.setup

# The LokaliseManager module provides functionalities to import and export translation
# files to and from the Lokalise TMS. It simplifies interactions with the Lokalise API
# by providing a straightforward interface to instantiate importers and exporters.
#
# Example:
#   importer = LokaliseManager.importer(api_token: '1234abc', project_id: '123.abc')
#   exporter = LokaliseManager.exporter(api_token: '1234abc', project_id: '123.abc')
#   importer.import!
#   exporter.export!
#
module LokaliseManager
  class << self
    # Creates an importer object for downloading translation files from Lokalise.
    #
    # @param custom_opts [Hash] Custom options for the importer (e.g., API token and project ID).
    # @param global_config [Object] Global configuration settings, defaults to LokaliseManager::GlobalConfig.
    # @return [LokaliseManager::TaskDefinitions::Importer] An instance of the importer.
    #
    def importer(custom_opts = {}, global_config = LokaliseManager::GlobalConfig)
      LokaliseManager::TaskDefinitions::Importer.new custom_opts, global_config
    end

    # Creates an exporter object for uploading translation files to Lokalise.
    #
    # @param custom_opts [Hash] Custom options for the exporter (e.g., API token and project ID).
    # @param global_config [Object] Global configuration settings, defaults to LokaliseManager::GlobalConfig.
    # @return [LokaliseManager::TaskDefinitions::Exporter] An instance of the exporter.
    #
    def exporter(custom_opts = {}, global_config = LokaliseManager::GlobalConfig)
      LokaliseManager::TaskDefinitions::Exporter.new custom_opts, global_config
    end
  end
end