Class: ExpressTranslate::Language

Inherits:
ExpressTranslateModel show all
Includes:
ExpressTranslate
Defined in:
lib/express_translate/languages_management.rb,
lib/seeds/languages_seed.rb

Overview

Construction

id: en
text: English
packages: be

Class Method Summary collapse

Methods included from ExpressTranslate

clear, config, #language, reset, root, seeds, setup

Methods inherited from ExpressTranslateModel

add, add_has_many, add_has_many_item, all, change_data, check_unique_allow_add, delete, destroy, find, notfound, primary_key, primary_nil, protect_attr, protect_attr_items, save, successful, update

Class Method Details

.check_update_data(old_id, packages, params, update) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
# 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

.delete_by_id_packages(id, packages) ⇒ Object

Remove package by ID package



14
15
16
# 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) ⇒ Object

Get origin language id and packages id



40
41
42
43
44
# 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

.get_origin_part_1(packages) ⇒ Object



63
64
65
66
67
68
69
70
# 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) ⇒ Object



93
94
95
96
# 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) ⇒ Object

Remove Language by ID and Package ID



49
50
51
52
53
54
# 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

.seedObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 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) ⇒ Object

Set origin language id and packages id



27
28
29
30
31
32
33
34
35
36
37
# 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) ⇒ Object

Update package by item id and ID package



19
20
21
22
23
24
# 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

.update_origin_only(id, packages, is_true) ⇒ Object

Update status origin for language



57
58
59
60
61
# 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) ⇒ Object



84
85
86
87
88
89
90
91
# 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