class WebTranslateIt::Translation

Attributes

created_at[RW]
id[RW]
locale[RW]
status[RW]
string_id[RW]
text[RW]
updated_at[RW]
version[RW]

Public Class Methods

new(params = {}) click to toggle source

Initialize a new WebTranslateIt::Translation

Implementation Example:

WebTranslateIt::Translation.new({ :string_id => "1234", :text => "Super!" })

to instantiate a new Translation without any text.

# File lib/web_translate_it/translation.rb, line 18
def initialize(params = {}) # rubocop:todo Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
  params.stringify_keys!
  self.id         = params['id'] || nil
  self.locale     = params['locale'] || nil
  self.text       = params['text'] || nil
  self.status     = params['status'] || 'status_unproofread'
  self.created_at = params['created_at'] || nil
  self.updated_at = params['updated_at'] || nil
  self.version    = params['version'] || nil
  self.string_id = (params['string']['id'] if params['string'])
end

Public Instance Methods

save() click to toggle source

Save a WebTranslateIt::Translation

Implementation Example:

translation = WebTranslateIt::Translation.new({ :string_id => "1234", :text => "Super!" })
WebTranslateIt::Connection.new('secret_api_token') do
  translation.save
end
# File lib/web_translate_it/translation.rb, line 40
def save # rubocop:todo Metrics/MethodLength
  tries ||= 3
  request = Net::HTTP::Post.new("/api/projects/#{Connection.api_key}/strings/#{string_id}/locales/#{locale}/translations")
  WebTranslateIt::Util.add_fields(request)
  request.body = to_json
  begin
    Util.handle_response(Connection.http_connection.request(request), true, true)
  rescue Timeout::Error
    puts 'Request timeout. Will retry in 5 seconds.'
    if (tries -= 1).positive?
      sleep(5)
      retry
    end
  end
end
to_hash() click to toggle source
# File lib/web_translate_it/translation.rb, line 56
def to_hash
  {
    'locale' => locale,
    'text' => text,
    'status' => status
  }
end
to_json(*_args) click to toggle source
# File lib/web_translate_it/translation.rb, line 64
def to_json(*_args)
  MultiJson.dump(to_hash)
end