Class: ExpressTranslate::Language
- Inherits:
-
ExpressTranslateModel
- Object
- ExpressTranslateModel
- ExpressTranslate::Language
- 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
- .check_update_data(old_id, packages, params, update) ⇒ Object
-
.delete_by_id_packages(id, packages) ⇒ Object
Remove package by ID package.
-
.get_origin(packages) ⇒ Object
Get origin language id and packages id.
- .get_origin_part_1(packages) ⇒ Object
- .get_with_id_packages(id, packages) ⇒ Object
-
.reject_with_id_packages(id, packages) ⇒ Object
Remove Language by ID and Package ID.
- .seed ⇒ Object
-
.set_origin(id, packages) ⇒ Object
Set origin language id and packages id.
-
.update_by_id_packages(old_id, packages, params) ⇒ Object
Update package by item id and ID package.
-
.update_origin_only(id, packages, is_true) ⇒ Object
Update status origin for language.
- .updating_keys(keys, packages, params) ⇒ Object
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 |
.seed ⇒ Object
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 |