class Transfluent::Language

Represents a language that can be identified by an IETF language tag or Transfluent specific id

Attributes

code[R]
id[R]
name[R]

Public Class Methods

get(code) click to toggle source

Get an instance of language by code

@param [string] code code for language, 'en-us', 'en-gb' etc.

@return [Language]

# File lib/transfluent/language.rb, line 15
def self.get code
  Language.fetch if $languages_by_code.nil?

  $languages_by_code[code]
end
get_by_id(id) click to toggle source
# File lib/transfluent/language.rb, line 21
def self.get_by_id id
  Language.fetch if $languages_by_code.nil?

  $languages_by_id[id]
end
new(id, code, name) click to toggle source
# File lib/transfluent/language.rb, line 27
def initialize id, code, name
  @id = id.to_i
  @code = code
  @name = name
end

Private Class Methods

fetch() click to toggle source
# File lib/transfluent/language.rb, line 35
def self.fetch
  api = Object.new
  api.extend(ApiHelper)

  uri = api.api_uri('languages')

  response = api.execute_get(uri)

  $languages_by_code = {}
  $languages_by_id = {}
  response.each do |item|
    item.each do |id, lang|
      $languages_by_code[lang[:code]] = Language.new lang[:id], lang[:code], lang[:name]
      $languages_by_id[lang[:id]] = $languages_by_code[lang[:code]]
    end
  end
end