Module: HasLocalizationTable::ActiveRecord::MetaMethods
- Defined in:
- lib/has_localization_table/active_record/meta_methods.rb
Defined Under Namespace
Modules: InstanceMethods
Class Method Summary collapse
Instance Method Summary collapse
- #localization_association_name ⇒ Object
- #localization_class ⇒ Object
- #localized_attribute_required?(attribute) ⇒ Boolean
- #localized_attributes ⇒ Object
Class Method Details
.extended(klass) ⇒ Object
4 5 6 |
# File 'lib/has_localization_table/active_record/meta_methods.rb', line 4 def self.extended(klass) klass.send(:include, InstanceMethods) end |
Instance Method Details
#localization_association_name ⇒ Object
12 13 14 |
# File 'lib/has_localization_table/active_record/meta_methods.rb', line 12 def localization_association_name [:association_name] end |
#localization_class ⇒ Object
8 9 10 |
# File 'lib/has_localization_table/active_record/meta_methods.rb', line 8 def localization_class [:class_name].constantize end |
#localized_attribute_required?(attribute) ⇒ Boolean
31 32 33 34 35 36 |
# File 'lib/has_localization_table/active_record/meta_methods.rb', line 31 def localized_attribute_required?(attribute) return false unless [:required] || false return true unless [:optional] ![:optional].include?(attribute) end |
#localized_attributes ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/has_localization_table/active_record/meta_methods.rb', line 16 def localized_attributes # Determine which attributes of the association model should be accessible through the base class # ie. everything that's not a primary key, foreign key, or timestamp attribute association_name = self.[:association_name] || :strings association = reflect_on_association(association_name) attribute_names = association.klass.attribute_names = association.klass.new.send(:all_timestamp_attributes_in_model).map(&:to_s) foreign_keys = association.klass.reflect_on_all_associations.map{ |a| a.association_foreign_key } primary_keys = [association.klass.primary_key] # protected_attrs = association.klass.protected_attributes.to_a (attribute_names - - foreign_keys - primary_keys).map(&:to_sym) end |