class ExpressTranslate::Language

Construction

id: en
text: English
packages: be

Public Class Methods

delete_by_id_packages(id, packages) click to toggle source

Remove package by ID package

# File lib/express_translate/languages_management.rb, line 14
def self.delete_by_id_packages(id, packages)
  return self.reject_with_id_packages(id, packages)
end
get_origin(packages) click to toggle source

Get origin language id and packages id

# File lib/express_translate/languages_management.rb, line 40
def self.get_origin(packages)
  origin = self.all.select{|lang| (lang["packages"] == packages and lang["is_origin"] == true)}
  return origin[0] if origin.count > 0
  return self.get_origin_part_1(packages)
end
seed() click to toggle source
# File lib/seeds/languages_seed.rb, line 4
def self.seed
  if !(Language.all.present?)
    Language.add({
      id: ExpressTranslate.config["language"]["id"],
      text: ExpressTranslate.config["language"]["text"],
      packages: ExpressTranslate.config["package"]["id"],
      is_origin: true
    })
  
    LanguageDetail.name = "lang_#{ExpressTranslate.config["package"]["id"]}_#{ExpressTranslate.config["language"]["id"]}"
    LanguageDetail.add({
      code: 'hello',
      text: 'Hello'
    })
  end
end
set_origin(id, packages) click to toggle source

Set origin language id and packages id

# File lib/express_translate/languages_management.rb, line 27
def self.set_origin(id, packages)
  all = self.all
  origin_old = self.get_origin(packages)
  self.update_origin_only(origin_old["id"], packages, false) if origin_old.present?
  origin_new = self.get_with_id_packages(id, packages)      
  if origin_new.present?
    self.update_origin_only(origin_new["id"], packages, true)
    return self.successful(all)
  end
  return self.notfound
end
update_by_id_packages(old_id, packages, params) click to toggle source

Update package by item id and ID package

# File lib/express_translate/languages_management.rb, line 19
def self.update_by_id_packages(old_id, packages, params)
  all = self.all
  return self.primary_key if self.get_with_id_packages(params[:id], packages).present?
  return self.notfound if self.reject_with_id_packages(old_id, packages)["success"].present?
  return self.check_update_data(old_id, packages, params, self.add(params))  
end

Private Class Methods

check_update_data(old_id, packages, params, update) click to toggle source
# File lib/express_translate/languages_management.rb, line 72
def self.check_update_data(old_id, packages, params, update)
  if old_id != params[:id] and update["success"]
    lang_detail_old = ["lang", packages, old_id].join("_")
    lang_detail_new = ["lang", packages, params[:id]].join("_")
    Database.redis.set(lang_detail_new, Database.redis.get(lang_detail_old))
    Database.redis.del(lang_detail_old)      
    keys = Database.redis.keys("#{packages}#{old_id}.*")
    self.updating_keys(keys, packages, params)
  end
  return update
end
get_origin_part_1(packages) click to toggle source
# File lib/express_translate/languages_management.rb, line 63
def self.get_origin_part_1(packages)
  all_of_package = self.all.select{|lang| lang["packages"] == packages}
  if (all_of_package.count > 0)
    self.update_origin_only(all_of_package[0]["id"], packages, true)
    return all_of_package[0]
  end
  return nil
end
get_with_id_packages(id, packages) click to toggle source
# File lib/express_translate/languages_management.rb, line 93
def self.get_with_id_packages(id, packages)
  selects = self.all.select{|lang| (lang["id"] == id and lang["packages"] == packages)}
  return selects.count > 0 ? selects[0] : nil
end
reject_with_id_packages(id, packages) click to toggle source

Remove Language by ID and Package ID

# File lib/express_translate/languages_management.rb, line 49
def self.reject_with_id_packages(id, packages)
  all_reject = self.all
  count_before = all_reject.count
  all_reject.reject!{|lang| (lang["id"] == id and lang["packages"] == packages)}
  return self.change_data(count_before, all_reject.count, all_reject)
end
update_origin_only(id, packages, is_true) click to toggle source

Update status origin for language

# File lib/express_translate/languages_management.rb, line 57
def self.update_origin_only(id, packages, is_true)
  this = self.get_with_id_packages(id, packages)
  this["is_origin"] = is_true
  self.save(self.all.push(this)) if self.reject_with_id_packages(id, packages)["success"]
end
updating_keys(keys, packages, params) click to toggle source
# File lib/express_translate/languages_management.rb, line 84
def self.updating_keys(keys, packages, params)
  keys.each do |key|
    key_array = key.split(".")
    key_array[0] = [packages, params[:id]].join
    Database.redis.set(key_array.join("."), Database.redis.get(key))
    Database.redis.del(key)
  end
end