Class: RemoteTranslationLoader::Loader

Inherits:
Object
  • Object
show all
Defined in:
lib/remote_translation_loader/loader.rb

Instance Method Summary collapse

Constructor Details

#initialize(urls, fetcher: nil, logger: Logger.new($stdout)) ⇒ Loader

fetcher: can be left unset to auto-detect the right fetcher per source (http(s):// -> HttpFetcher, s3://bucket/key -> S3Fetcher, else -> FileFetcher). Pass an explicit fetcher to force every source through it instead.



9
10
11
12
13
14
# File 'lib/remote_translation_loader/loader.rb', line 9

def initialize(urls, fetcher: nil, logger: Logger.new($stdout))
  @urls = urls
  @fetcher = fetcher
  @resolver = SourceResolver.new if @fetcher.nil?
  @logger = logger
end

Instance Method Details

#fetch_and_load(dry_run: false, namespace: nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/remote_translation_loader/loader.rb', line 16

def fetch_and_load(dry_run: false, namespace: nil)
  @urls.each do |url|
    content = fetch_content(url)
    validate_translations!(content, url)

    if dry_run
      @logger.info("Simulating loading for #{url}: #{content.inspect}")
    else
      merge_into_i18n(content, namespace: namespace)
    end
  end
end