A corporation manager and dashboard for EVE Online
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

40 linhas
922 B

  1. class AdminSetting < ActiveRecord::Base
  2. def self.to_bool(value)
  3. value == 't'
  4. end
  5. def self.from_bool(value)
  6. value ? 't' : 'f'
  7. end
  8. def self.add(key, value)
  9. value = self.from_bool(value) if value == true || value == false
  10. self.create(key: key, value: value)
  11. end
  12. def self.get(key)
  13. existing = Rails.cache.read("admin_setting/#{key}")
  14. return existing unless existing.nil?
  15. setting = self.find_by(key: key)
  16. return nil if setting.nil?
  17. Rails.cache.write("admin_setting/#{key}", setting.value)
  18. setting.value
  19. end
  20. def self.get_bool(key)
  21. self.to_bool(self.get(key))
  22. end
  23. def self.set(key, value)
  24. existing = self.get(key)
  25. return if existing.nil? || existing == value
  26. self.find_by(key: key).update(value: value)
  27. Rails.cache.write("admin_setting/#{key}", value)
  28. end
  29. def self.set_bool(key, value)
  30. self.set(key, self.from_bool(value))
  31. end
  32. end