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