Class: MissingI18n::Locale

Inherits:
Object
  • Object
show all
Defined in:
app/models/missing_i18n/locale.rb

Overview

plain old ruby object

Constant Summary collapse

@@merged_translations =
nil
@@i18n_translations =
nil
@@all =
nil

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id) ⇒ Locale

Returns a new instance of Locale.



10
11
12
# File 'app/models/missing_i18n/locale.rb', line 10

def initialize(id)
  self.id = id.to_s
end

Instance Attribute Details

#idObject

Returns the value of attribute id.



8
9
10
# File 'app/models/missing_i18n/locale.rb', line 8

def id
  @id
end

Class Method Details

.allObject



27
28
29
# File 'app/models/missing_i18n/locale.rb', line 27

def self.all
  @@all ||= I18n.available_locales.collect{ |id| new(id) }.sort_by(&:id)
end

.i18n_translationsObject



41
42
43
44
45
46
47
# File 'app/models/missing_i18n/locale.rb', line 41

def self.i18n_translations
  unless @@i18n_translations
    I18n.backend.send :init_translations
    @@i18n_translations = hash_deep_stringify_keys(I18n.backend.send(:translations))
  end
  @@i18n_translations
end

.merged_translationsObject



31
32
33
34
35
36
37
38
39
# File 'app/models/missing_i18n/locale.rb', line 31

def self.merged_translations
  unless @@merged_translations
    @@merged_translations = {}
    i18n_translations.each do |locale, translations|
      @@merged_translations = translations.deep_merge(@@merged_translations)
    end
  end
  @@merged_translations
end

Instance Method Details

#missing_i18n(ignored_scopes = MissingI18n.ignored_scopes) ⇒ Object



22
23
24
25
# File 'app/models/missing_i18n/locale.rb', line 22

def missing_i18n(ignored_scopes = MissingI18n.ignored_scopes)
  diff = hash_deep_diff(self.class.merged_translations, self.translations)
  return hash_filter(diff, [], ignored_scopes)
end

#to_yaml(ignored_scopes = MissingI18n.ignored_scopes) ⇒ Object



14
15
16
# File 'app/models/missing_i18n/locale.rb', line 14

def to_yaml(ignored_scopes = MissingI18n.ignored_scopes)
  {self.id => missing_i18n(ignored_scopes)}.to_yaml
end

#translationsObject



18
19
20
# File 'app/models/missing_i18n/locale.rb', line 18

def translations
  self.class.i18n_translations[self.id]
end