Class: SingleTableGlobalize3::ActiveRecord::Translation
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- SingleTableGlobalize3::ActiveRecord::Translation
- Defined in:
- lib/single_table_globalize3/active_record/translation.rb
Class Method Summary collapse
- .attribute(attribute) ⇒ Object
- .attribute_translations(attribute) ⇒ Object
- .translated_locales ⇒ Object
- .with_locales(*locales) ⇒ Object (also: with_locale)
Instance Method Summary collapse
Class Method Details
.attribute(attribute) ⇒ Object
27 28 29 30 |
# File 'lib/single_table_globalize3/active_record/translation.rb', line 27 def attribute(attribute) attribute = attribute.to_s where :attribute_name => attribute end |
.attribute_translations(attribute) ⇒ Object
32 33 34 35 36 |
# File 'lib/single_table_globalize3/active_record/translation.rb', line 32 def attribute_translations(attribute) attribute(attribute).inject(HashWithIndifferentAccess.new) do |hash, translation| hash.update(translation.locale => translation.value) end end |
.translated_locales ⇒ Object
23 24 25 |
# File 'lib/single_table_globalize3/active_record/translation.rb', line 23 def translated_locales select('DISTINCT locale').map(&:locale).sort { |l,r| l.to_s <=> r.to_s } end |
.with_locales(*locales) ⇒ Object Also known as: with_locale
15 16 17 18 19 20 |
# File 'lib/single_table_globalize3/active_record/translation.rb', line 15 def with_locales(*locales) # Avoid using "IN" with SQL queries when only using one locale. locales = locales.flatten.map(&:to_s) locales = locales.first if locales.one? where :locale => locales end |
Instance Method Details
#locale ⇒ Object
39 40 41 42 |
# File 'lib/single_table_globalize3/active_record/translation.rb', line 39 def locale _locale = read_attribute :locale _locale.present? ? _locale.to_sym : _locale end |
#locale=(locale) ⇒ Object
44 45 46 |
# File 'lib/single_table_globalize3/active_record/translation.rb', line 44 def locale=(locale) write_attribute :locale, locale.to_s end |