class Translatable::Base
Attributes
fields[R]
or_name[R]
origin_key[R]
origin_reflection_name[R]
t_model[R]
translation_model[R]
Public Class Methods
new(origin_model)
click to toggle source
# File lib/translatable/base.rb, line 5 def initialize origin_model @origin_model = origin_model end
Public Instance Methods
class_name(model_name)
click to toggle source
# File lib/translatable/base.rb, line 14 def class_name(model_name) @translation_model = prepare_model model_name end
field(*args)
click to toggle source
API
# File lib/translatable/base.rb, line 10 def field(*args) (@fields ||= []) << set_mapping(*args) end
foreign_key(key_name)
click to toggle source
# File lib/translatable/base.rb, line 18 def foreign_key(key_name) @origin_key = key_name.to_sym end
locale_column()
click to toggle source
# File lib/translatable/base.rb, line 46 def locale_column @locale_column || (@locale_column = :locale) end
locale_key(key_name, opts = {})
click to toggle source
# File lib/translatable/base.rb, line 26 def locale_key(key_name, opts = {}) set_mapping key_name, opts @locale_column = key_name.to_sym end
mapping()
click to toggle source
# File lib/translatable/base.rb, line 50 def mapping unless @mapping_defined (@mapping ||= {})[locale_column] ||= :locale @mapping_defined = true end @mapping || {} end
reflection_name(reflection)
click to toggle source
# File lib/translatable/base.rb, line 22 def reflection_name(reflection) @origin_reflection_name = reflection.to_sym end
Protected Instance Methods
origin_class_name()
click to toggle source
# File lib/translatable/base.rb, line 65 def origin_class_name @origin_model.name end
prepare_model(model_name = nil)
click to toggle source
# File lib/translatable/base.rb, line 69 def prepare_model(model_name = nil) model_constant = model_name ? model_name.to_s.camelize : "Translated#{origin_class_name}" model_constant.constantize end
set_mapping(attribute, options = {})
click to toggle source
# File lib/translatable/base.rb, line 60 def set_mapping attribute, options = {} (@mapping ||= {})[attribute.to_sym] = options.delete(:as) || attribute rescue attribute return attribute, options end