Class: RedisDictionary::Translation

Inherits:
Object
  • Object
show all
Defined in:
app/models/redis_dictionary/translation.rb

Class Method Summary collapse

Class Method Details

.all(string = nil) ⇒ Object



9
10
11
12
13
14
15
# File 'app/models/redis_dictionary/translation.rb', line 9

def self.all(string = nil)
  keys = Engine.redis.sunion('keys', 'system_keys')
  if string.present?
    keys = keys.grep(/#{string}/)
  end
  keys.sort
end

.create(key, value, locale) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'app/models/redis_dictionary/translation.rb', line 29

def self.create(key, value, locale)
  if key.present?
    digest = digest_key(key)
    Engine.redis.hset('keys_digest', digest, key)
    Engine.redis.sadd('keys', key)
    I18n.backend.store_translations(locale, {key => value}, :escape => false)
    digest
  end
end

.destroy(digest) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'app/models/redis_dictionary/translation.rb', line 43

def self.destroy(digest)
  key = Engine.redis.hget('keys_digest', digest)
  Engine.redis.srem('keys', key)
  Engine.redis.hdel("keys_digest", digest)
  I18n.available_locales.each do |locale|
    Engine.redis.del("#{locale}.#{key}")
  end
  I18n.reload!
end

.digest_key(key) ⇒ Object



53
54
55
# File 'app/models/redis_dictionary/translation.rb', line 53

def self.digest_key(key)
  Digest::MD5.hexdigest(key)
end

.exists?(key, locale) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'app/models/redis_dictionary/translation.rb', line 39

def self.exists?(key, locale)
  Engine.redis.exists("#{locale}.#{key}")
end

.keysObject



17
18
19
# File 'app/models/redis_dictionary/translation.rb', line 17

def self.keys
  Engine.redis.smembers('keys').sort!
end

.rehash!Object



57
58
59
60
61
62
# File 'app/models/redis_dictionary/translation.rb', line 57

def self.rehash!
  self.all.each do |key|
    Engine.redis.hset('keys_digest', digest_key(key), key)
  end
  true
end

.system_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'app/models/redis_dictionary/translation.rb', line 25

def self.system_key?(key)
  Engine.redis.sismember('system_keys', key)
end

.system_keysObject



21
22
23
# File 'app/models/redis_dictionary/translation.rb', line 21

def self.system_keys
  Engine.redis.smembers('system_keys').sort!
end