module CellI18n

Public Instance Methods

i18n(key, locale = i18n_locale) click to toggle source
# File lib/cell_i18n.rb, line 4
def i18n(key, locale = i18n_locale)
  translation_path = namespace + [key]
  dictionaries[locale].dig(*translation_path)
end
i18n_file_path() click to toggle source
# File lib/cell_i18n.rb, line 9
def i18n_file_path
  "lib/locale".freeze
end
i18n_locale() click to toggle source
# File lib/cell_i18n.rb, line 13
def i18n_locale
  "en".freeze
end
i18n_parser() click to toggle source
# File lib/cell_i18n.rb, line 17
def i18n_parser
  [JSON.method(:parse), "json".freeze]
end

Private Instance Methods

dictionaries() click to toggle source
# File lib/cell_i18n.rb, line 25
        def dictionaries
  @@dictionaries ||= begin
    hash = Hash.new do |hash, locale|
      parser, extension = i18n_parser
      dictionary = parser.(File.read(File.join(i18n_file_path, "#{locale}.#{extension}")))
      hash[locale] = dictionary
    end
  end
end
namespace() click to toggle source
# File lib/cell_i18n.rb, line 21
        def namespace
  self.class.name.split("::".freeze)
end