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.



18
19
20
21
22
23
24
25
26
# File 'lib/sgtn-client/loader/server.rb', line 18

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



35
36
37
38
39
40
41
42
43
44
# File 'lib/sgtn-client/loader/server.rb', line 35

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



28
29
30
31
32
33
# File 'lib/sgtn-client/loader/server.rb', line 28

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