Sha256: 1d34ae346a41c69849b1e6647fb7f62620a5a37bd53091f0edc586781df400be
Contents?: true
Size: 1.39 KB
Versions: 6
Compression:
Stored size: 1.39 KB
Contents
module Locomotive::Steam module Models class I18nField extend Forwardable def_delegators :@translations, :values, :default attr_reader :name, :translations def initialize(name, translations) @name = name self.translations = translations end def initialize_copy(field) super self.translations = field.translations.dup end def [](locale) @translations[locale] end def []=(locale, value) @translations[locale] = value end def translations=(translations) @translations = (if translations.respond_to?(:fetch) translations else Hash.new(translations) end).with_indifferent_access end def each(&block) @translations.each(&block) end def blank? @translations.blank? && @translations[:anything].blank? end def apply(&block) if default @translations = Hash.new(yield(default)) else each do |l, _value| self[l] = block.arity == 2 ? yield(_value, l) : yield(_value) end end self end alias :__translations__ :translations alias :to_hash :translations def serialize(attributes) attributes[@name] = @translations end def to_json to_hash.to_json end end end end
Version data entries
6 entries across 6 versions & 1 rubygems