module AwesomeHstoreTranslate::ActiveRecord::ActAsTranslatable
Public Instance Methods
translates(*attr_names)
click to toggle source
# File lib/awesome_hstore_translate/active_record/act_as_translatable.rb, line 4 def translates(*attr_names) options = attr_names.extract_options! bootstrap(options, attr_names) if attr_names.present? enable_attributes(attr_names) enable_accessors(attr_names) if options[:accessors] end end
Protected Instance Methods
apply_options(options)
click to toggle source
# File lib/awesome_hstore_translate/active_record/act_as_translatable.rb, line 31 def apply_options(options) fallbacks = I18n.respond_to?(:fallbacks) ? I18n.fallbacks : true options[:fallbacks] = fallbacks unless options.include?(:fallbacks) options[:accessors] = false unless options.include?(:accessors) class_attribute :translation_options self.translation_options = options end
bootstrap(options, attr_names)
click to toggle source
# File lib/awesome_hstore_translate/active_record/act_as_translatable.rb, line 48 def bootstrap(options, attr_names) apply_options(options) expose_translated_attrs(attr_names) include InstanceMethods extend Core::ClassMethods extend ClassMethods end
enable_accessors(attr_names)
click to toggle source
# File lib/awesome_hstore_translate/active_record/act_as_translatable.rb, line 24 def enable_accessors(attr_names) extend Accessors attr_names.each do |attr_name| define_accessors(attr_name) end end
enable_attributes(attr_names)
click to toggle source
# File lib/awesome_hstore_translate/active_record/act_as_translatable.rb, line 17 def enable_attributes(attr_names) extend Attributes attr_names.each do |attr_name| define_attributes(attr_name) end end
expose_translated_attrs(attr_names)
click to toggle source
# File lib/awesome_hstore_translate/active_record/act_as_translatable.rb, line 40 def expose_translated_attrs(attr_names) class_attribute :translated_attribute_names self.translated_attribute_names = attr_names class_attribute :translated_accessor_names self.translated_accessor_names = [] end