Class: Translator::SmartlingCoordinator
- Inherits:
-
Object
- Object
- Translator::SmartlingCoordinator
- Defined in:
- lib/nexmo_developer/app/services/translator/smartling_coordinator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
- #create_batch(job_id, requests) ⇒ Object
- #create_job(locale) ⇒ Object
- #due_date ⇒ Object
-
#initialize(requests:, frequency:) ⇒ SmartlingCoordinator
constructor
A new instance of SmartlingCoordinator.
- #requests_by_locale ⇒ Object
- #upload_file_to_batch(batch_id, translation_request) ⇒ Object
Constructor Details
#initialize(requests:, frequency:) ⇒ SmartlingCoordinator
Returns a new instance of SmartlingCoordinator.
7 8 9 10 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 7 def initialize(requests:, frequency:) @requests = requests @frequency = frequency end |
Class Method Details
.call(attrs = {}) ⇒ Object
3 4 5 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 3 def self.call(attrs = {}) new(attrs).call end |
Instance Method Details
#call ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 12 def call # One Smartling Job per locale requests_by_locale.map do |locale, requests| job_id = create_job(locale) next unless job_id batch_id = create_batch(job_id, requests) next unless batch_id requests.map { |r| upload_file_to_batch(batch_id, r) } end end |
#create_batch(job_id, requests) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 42 def create_batch(job_id, requests) Translator::Smartling::ApiRequestsGenerator.create_batch( job_id: job_id, requests: requests ) end |
#create_job(locale) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 35 def create_job(locale) Translator::Smartling::ApiRequestsGenerator.create_job( locales: [locale], due_date: due_date ) end |
#due_date ⇒ Object
31 32 33 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 31 def due_date @due_date ||= (Time.zone.now + @frequency.days).to_s(:iso8601) end |
#requests_by_locale ⇒ Object
27 28 29 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 27 def requests_by_locale @requests_by_locale ||= @requests.group_by(&:locale) end |
#upload_file_to_batch(batch_id, translation_request) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/nexmo_developer/app/services/translator/smartling_coordinator.rb', line 49 def upload_file_to_batch(batch_id, translation_request) Translator::Smartling::ApiRequestsGenerator.upload_file( batch_id: batch_id, translation_request: translation_request ) end |