module Translatable::ActiveRecord::ClassMethods
Public Instance Methods
translated?(name)
click to toggle source
# File lib/translatable/active_record/class_methods.rb, line 8 def translated?(name) included = translated_attribute_names.detect { |attr| attr.is_a?(Hash) ? attr.keys.include?(name.to_sym) : attr == name.to_sym } !included.nil? end
translation_class()
click to toggle source
# File lib/translatable/active_record/class_methods.rb, line 4 def translation_class Translatable.translation_class end
Protected Instance Methods
condition_callback(attr_names, callback)
click to toggle source
# File lib/translatable/active_record/class_methods.rb, line 42 def condition_callback(attr_names, callback) Proc.new { |rec| attr_names.any? do |translatable_attr| callback && rec.changes.keys.include?(translatable_attr.to_s) end } end
locale_from(args)
click to toggle source
# File lib/translatable/active_record/class_methods.rb, line 25 def locale_from(args) args.detect {|a| !a.is_a? Hash } end
translated_attr_accessor(name)
click to toggle source
# File lib/translatable/active_record/class_methods.rb, line 15 def translated_attr_accessor(name) define_method(:"#{name}=") do |value| write_attribute(name, value) end define_method(name) do |*args| self.read_attribute(name, {:locale => args.detect {|a| !a.is_a? Hash }}) end alias_method :"#{name}_before_type_cast", name end
translations_accessor(name)
click to toggle source
# File lib/translatable/active_record/class_methods.rb, line 29 def translations_accessor(name) define_method(:"#{name}_translations") do translations.each_with_object(HashWithIndifferentAccess.new) do |translation, result| result[translation.locale] = translation.send(name) end end define_method(:"#{name}_translations=") do |value| value.each do |(locale, value)| write_attribute name, value, :locale => locale end end end