lib/lolita-translation/has_translations.rb in lolita-translation-0.2.6 vs lib/lolita-translation/has_translations.rb in lolita-translation-0.2.7
- old
+ new
@@ -86,15 +86,15 @@
:fallback => true,
:reader => true,
:writer => false,
:nil => ''
}.merge(attrs.extract_options!)
- options.assert_valid_keys([:fallback, :reader, :writer, :nil])
+ options.assert_valid_keys([:fallback, :reader, :writer, :nil,:table_name])
self.extend(Lolita::Translation::ClassMethods)
self.class_eval do
translation_class_name = "#{self.name}Translation"
- translation_class = self.define_translation_class(translation_class_name, attrs)
+ translation_class = self.define_translation_class(translation_class_name, attrs,options)
belongs_to = self.name.demodulize.underscore.to_sym
write_inheritable_attribute :has_translations_options, options
class_inheritable_reader :has_translations_options
@@ -192,20 +192,20 @@
create_class(other.join('::'), parent, superclass, &block)
end
end
# defines "ModelNameTranslation" if it's not defined manualy
- def define_translation_class name, attrs
+ def define_translation_class name, attrs, options = {}
klass = name.constantize rescue nil
adapter = Lolita::DBI::Base.create(self)
unless klass
klass = create_class(name, Object, get_orm_class(adapter)) do
if adapter.dbi.adapter_name == :mongoid
include Mongoid::Document
end
# set's real table name
translation_adapter = Lolita::DBI::Base.create(self)
- translation_adapter.collection_name = adapter.collection_name.to_s.singularize + "_translation"
+ translation_adapter.collection_name = options[:table_name] || adapter.collection_name.to_s.singularize + "_translation"
cattr_accessor :translate_attrs, :master_id
# before friendly_id 4.x
if adapter.klass.respond_to?(:uses_friendly_id?) && adapter.klass.send(:uses_friendly_id?)