Module: Globalize::ActiveRecord::ClassMethods
- Defined in:
- lib/globalize/active_record/class_methods.rb
Instance Method Summary collapse
- #required_attributes ⇒ Object
- #required_translated_attributes ⇒ Object
- #translated?(name) ⇒ Boolean
- #translated_column_name(name) ⇒ Object
- #translation_class ⇒ Object
- #translations_table_name ⇒ Object
- #with_locales(*locales) ⇒ Object
- #with_required_attributes ⇒ Object
- #with_translated_attribute(name, value, locales = Globalize.fallbacks) ⇒ Object
- #with_translations(*locales) ⇒ Object
Instance Method Details
#required_attributes ⇒ Object
33 34 35 36 |
# File 'lib/globalize/active_record/class_methods.rb', line 33 def required_attributes warn 'required_attributes is deprecated and will be removed in the next release of Globalize.' validators.map { |v| v.attributes if v.is_a?(ActiveModel::Validations::PresenceValidator) }.flatten end |
#required_translated_attributes ⇒ Object
38 39 40 41 |
# File 'lib/globalize/active_record/class_methods.rb', line 38 def required_translated_attributes warn 'required_translated_attributes is deprecated and will be removed in the next release of Globalize.' translated_attribute_names & required_attributes end |
#translated?(name) ⇒ Boolean
29 30 31 |
# File 'lib/globalize/active_record/class_methods.rb', line 29 def translated?(name) translated_attribute_names.include?(name.to_sym) end |
#translated_column_name(name) ⇒ Object
59 60 61 |
# File 'lib/globalize/active_record/class_methods.rb', line 59 def translated_column_name(name) "#{translation_class.table_name}.#{name}" end |
#translation_class ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/globalize/active_record/class_methods.rb', line 43 def translation_class @translation_class ||= begin klass = self.const_get(:Translation) rescue nil if klass.nil? || klass.class_name != (self.class_name + "Translation") klass = self.const_set(:Translation, Class.new(Globalize::ActiveRecord::Translation)) end klass.belongs_to :globalized_model, :class_name => self.name, :foreign_key => [:foreign_key], :touch => true klass end end |
#translations_table_name ⇒ Object
55 56 57 |
# File 'lib/globalize/active_record/class_methods.rb', line 55 def translations_table_name translation_class.table_name end |
#with_locales(*locales) ⇒ Object
6 7 8 |
# File 'lib/globalize/active_record/class_methods.rb', line 6 def with_locales(*locales) all.merge translation_class.with_locales(*locales) end |
#with_required_attributes ⇒ Object
15 16 17 18 19 20 |
# File 'lib/globalize/active_record/class_methods.rb', line 15 def with_required_attributes warn 'with_required_attributes is deprecated and will be removed in the next release of Globalize.' required_translated_attributes.inject(all) do |scope, name| scope.where("#{translated_column_name(name)} IS NOT NULL") end end |
#with_translated_attribute(name, value, locales = Globalize.fallbacks) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/globalize/active_record/class_methods.rb', line 22 def with_translated_attribute(name, value, locales = Globalize.fallbacks) with_translations.where( translated_column_name(name) => value, translated_column_name(:locale) => Array(locales).map(&:to_s) ) end |
#with_translations(*locales) ⇒ Object
10 11 12 13 |
# File 'lib/globalize/active_record/class_methods.rb', line 10 def with_translations(*locales) locales = translated_locales if locales.empty? preload(:translations).joins(:translations).readonly(false).with_locales(locales) end |