class Spaceship::Tunes::LanguageItem

Represents one attribute (e.g. name) of an app in multiple languages

def [](key)

def [](key)
  get_lang(key)[identifier]['value']
end

def []=(key, value)

def []=(key, value)
  get_lang(key)[identifier]['value'] = value
end

def get_lang(lang)

def get_lang(lang)
  result = self.original_array.find do |current|
    current['language'] == lang or current['localeCode'] == lang # Apple being consistent
  end
  return result if result
  raise "Language '#{lang}' is not activated for this app version."
end

def initialize(identifier, ref)

def initialize(identifier, ref)
  raise "ref is nil" if ref.nil?
  self.identifier = identifier.to_s
  self.original_array = ref
end

def inspect

def inspect
  result = ""
  self.original_array.collect do |current|
    result += "#{current.fetch('language')}: #{current.fetch(identifier, {}).fetch('value')}\n"
  end
  result
end

def keys

Returns:
  • (Array) - An array containing all languages that are already available
def keys
  self.original_array.collect { |l| l.fetch('language') }
end

def languages

Returns:
  • (Array) - An array containing all languages that are already available
def languages
  keys
end

def to_s

def to_s
  inspect
end