Class: SgtnClient::TranslationLoader::SgtnServer

Inherits:
Object
  • Object
show all
Defined in:
lib/sgtn-client/loader/server.rb

Constant Summary collapse

ERROR_ILLEGAL_DATA =
'server returned illegal data.'
ERROR_BUSINESS_ERROR =
'server returned business error.'
REQUEST_ARGUMENTS =
{ timeout: 10 }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ SgtnServer

Returns a new instance of SgtnServer.



23
24
25
26
27
28
29
30
31
# File 'lib/sgtn-client/loader/server.rb', line 23

def initialize(config)
  @server_url = config['vip_server']

  product_root = format('i18n/api/v2/translation/products/%s/versions/%s', config['product_name'], config['version'])

  @bundle_url = "#{product_root}/locales/%s/components/%s"
  @locales_url = "#{product_root}/localelist"
  @components_url = "#{product_root}/componentlist"
end

Instance Method Details

#available_bundlesObject



40
41
42
43
44
45
46
47
48
49
# File 'lib/sgtn-client/loader/server.rb', line 40

def available_bundles
  SgtnClient.logger.debug "[#{method(__callee__).owner}.#{__callee__}]"

  components_thread = Thread.new { available_components }
  available_locales.reduce(Set.new) do |bundles, locale|
    components_thread.value.reduce(bundles) do |inner_bundles, component|
      inner_bundles << Common::BundleID.new(component, locale)
    end
  end
end

#load_bundle(component, locale) ⇒ Object



33
34
35
36
37
38
# File 'lib/sgtn-client/loader/server.rb', line 33

def load_bundle(component, locale)
  SgtnClient.logger.debug "[#{method(__callee__).owner}.#{__callee__}] component=#{component}, locale=#{locale}"

  messages = query_server(format(@bundle_url, locale, component), ['messages'])
  messages
end