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