Module: Kuhsaft::Translatable::ClassMethods

Included in:
Kuhsaft::Translatable
Defined in:
lib/kuhsaft/translatable.rb

Instance Method Summary collapse

Instance Method Details

#define_localized_attr_finder(attr_name) ⇒ Object



37
38
39
40
41
# File 'lib/kuhsaft/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) ⇒ Object



19
20
21
22
23
# File 'lib/kuhsaft/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) ⇒ Object



25
26
27
28
29
# File 'lib/kuhsaft/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) ⇒ Object



31
32
33
34
35
# File 'lib/kuhsaft/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) ⇒ Object



47
48
49
# File 'lib/kuhsaft/translatable.rb', line 47

def locale_attr(attr_name)
  "#{attr_name}_#{I18n.locale.to_s.underscore}"
end

#locale_for_attr_nameObject



43
44
45
# File 'lib/kuhsaft/translatable.rb', line 43

def locale_for_attr_name
  I18n.locale.to_s.underscore
end

#translate(*args) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/kuhsaft/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