module Qbrick::Translatable::ClassMethods

Public Instance Methods

attr_name_for_locale(attr_name, locale) click to toggle source
# File lib/qbrick/translatable.rb, line 51
def attr_name_for_locale(attr_name, locale)
  "#{attr_name}_#{locale.to_s.underscore}"
end
define_localized_attr_finder(attr_name) click to toggle source
# File lib/qbrick/translatable.rb, line 37
def define_localized_attr_finder(attr_name)
  define_singleton_method "find_by_#{attr_name}" do |val|
    send "find_by_#{attr_name}_#{locale_for_attr_name}", val
  end
end
define_localized_attr_getter(attr_name) click to toggle source
# File lib/qbrick/translatable.rb, line 19
def define_localized_attr_getter(attr_name)
  define_method attr_name do
    send "#{attr_name}_#{locale_for_attr_name}"
  end
end
define_localized_attr_predicate_method(attr_name) click to toggle source
# File lib/qbrick/translatable.rb, line 25
def define_localized_attr_predicate_method(attr_name)
  define_method "#{attr_name}?" do
    send "#{attr_name}_#{locale_for_attr_name}?"
  end
end
define_localized_attr_setter(attr_name) click to toggle source
# File lib/qbrick/translatable.rb, line 31
def define_localized_attr_setter(attr_name)
  define_method "#{attr_name}=" do |val|
    send "#{attr_name}_#{locale_for_attr_name}=", val
  end
end
locale_attr(attr_name) click to toggle source
# File lib/qbrick/translatable.rb, line 47
def locale_attr(attr_name)
  "#{attr_name}_#{locale_for_attr_name}"
end
locale_for_attr_name() click to toggle source
# File lib/qbrick/translatable.rb, line 43
def locale_for_attr_name
  I18n.locale.to_s.underscore
end
translate(*args) click to toggle source
# File lib/qbrick/translatable.rb, line 10
def translate(*args)
  args.each do |attr_name|
    define_localized_attr_getter attr_name
    define_localized_attr_setter attr_name
    define_localized_attr_finder attr_name
    define_localized_attr_predicate_method attr_name
  end
end
translated_columns_for(attr_name) click to toggle source
# File lib/qbrick/translatable.rb, line 55
def translated_columns_for(attr_name)
  column_names & I18n.available_locales.map { |l| attr_name_for_locale attr_name, l }
end