Sha256: 996b666561aeef5513be65987a1be41898fce17df95f4cc8d7073d06ab8fded0

Contents?: true

Size: 827 Bytes

Versions: 1

Compression:

Stored size: 827 Bytes

Contents

class Translation < String
  attr_accessor :keys

  def initialize(*args)
    super
    @keys = {}
    @keys["default"] = "en"
  end

  def []=(lang, text)
    @keys[lang.to_s] = text
  end

  def [](lang)
    @keys[lang.to_s]
  end

  def languages
    langs = @keys.keys
    langs.delete("default")
    langs
  end

  def default_language=(lang)
    @keys["default"] = lang
    self.replace(@keys[lang.to_s])
  end

  def self.build(keys, default = "en")
    tr = self.new
    tr.keys = keys
    tr.default_language = default
    tr
  end

  def self.mongoize(value)
    return value.keys if value.kind_of?(self)

    @keys
  end

  def self.demongoize(value)
    return value if value.kind_of?(self)

    result = self.new
    result.keys = value
    result.default_language = value["default"] || "en"

    result
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongoid_ext-0.9.0 lib/mongoid_ext/types/translation.rb