Class: SgtnClient::TranslationLoader::SgtnServer
- Inherits:
-
Object
- Object
- SgtnClient::TranslationLoader::SgtnServer
- Defined in:
- lib/sgtn-client/loader/server.rb
Overview
:nodoc:
Constant Summary collapse
- ERROR_ILLEGAL_DATA =
'server returned illegal data.'
- ERROR_BUSINESS_ERROR =
'server returned business error.'
- ERROR_PARTIAL_SUCCESS =
'the request to server was partially successful.'
- ERROR_NO_DATA =
'no expected data in response from server. path: %s. Body is: %s'
- REQUEST_ARGUMENTS =
{ timeout: 10 }.freeze
Instance Method Summary collapse
- #available_bundles ⇒ Object
-
#initialize(config) ⇒ SgtnServer
constructor
A new instance of SgtnServer.
- #load_bundle(component, locale) ⇒ Object
Constructor Details
#initialize(config) ⇒ SgtnServer
Returns a new instance of SgtnServer.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/sgtn-client/loader/server.rb', line 20 def initialize(config) product_root = format('i18n/api/v2/translation/products/%<name>s/versions/%<version>s', name: config.product_name, version: config.version) @bundle_url = "#{product_root}/locales/%s/components/%s" @locales_url = "#{product_root}/localelist" @components_url = "#{product_root}/componentlist" @conn = Faraday.new(config.vip_server, request: REQUEST_ARGUMENTS) do |f| f.response :json # decode response bodies as JSON f.use :gzip f.response :raise_error f.response :logger, config.logger, { log_level: :debug, headers: false, bodies: true } end end |
Instance Method Details
#available_bundles ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/sgtn-client/loader/server.rb', line 42 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
36 37 38 39 40 |
# File 'lib/sgtn-client/loader/server.rb', line 36 def load_bundle(component, locale) SgtnClient.logger.debug { "[#{method(__callee__).owner}.#{__callee__}] component=#{component}, locale=#{locale}" } query_server(format(@bundle_url, locale, component), ['messages']) end |