Class: I18n::Backend::ActiveRecord::Translation

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/i18n/backend/active_record/translation.rb

Constant Summary collapse

TRUTHY_CHAR =
"\001"
FALSY_CHAR =
"\002"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.available_localesObject



76
77
78
# File 'lib/i18n/backend/active_record/translation.rb', line 76

def available_locales
  Translation.find(:all, :select => 'DISTINCT locale').map { |t| t.locale.to_sym }
end

.locale(locale) ⇒ Object



59
60
61
# File 'lib/i18n/backend/active_record/translation.rb', line 59

def locale(locale)
  scoped(:conditions => { :locale => locale.to_s })
end

.lookup(keys, *separator) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/i18n/backend/active_record/translation.rb', line 63

def lookup(keys, *separator)
  column_name = connection.quote_column_name('key')
  keys = Array(keys).map! { |key| key.to_s }

  unless separator.empty?
    warn "[DEPRECATION] Giving a separator to Translation.lookup is deprecated. " <<
      "You can change the internal separator by overwriting FLATTEN_SEPARATOR."
  end

  namespace = "#{keys.last}#{I18n::Backend::Flatten::FLATTEN_SEPARATOR}%"
  scoped(:conditions => ["#{column_name} IN (?) OR #{column_name} LIKE ?", keys, namespace])
end

Instance Method Details

#interpolates?(key) ⇒ Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/i18n/backend/active_record/translation.rb', line 81

def interpolates?(key)
  self.interpolations.include?(key) if self.interpolations
end

#valueObject



85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/i18n/backend/active_record/translation.rb', line 85

def value
  value = read_attribute(:value)
  if is_proc
    Kernel.eval(value)
  elsif value == FALSY_CHAR
    false
  elsif value == TRUTHY_CHAR
    true
  else
    value
  end
end

#value=(value) ⇒ Object



98
99
100
101
102
103
104
105
106
# File 'lib/i18n/backend/active_record/translation.rb', line 98

def value=(value)
  if value === false
    value = FALSY_CHAR
  elsif value === true
    value = TRUTHY_CHAR
  end

  write_attribute(:value, value)
end