Sha256: 6417900b5ebd008de6269d10c3314e433909326a0b36d1838039b11db249c1a8
Contents?: true
Size: 1.5 KB
Versions: 15
Compression:
Stored size: 1.5 KB
Contents
require 'lolita-translation/builder/active_record_builder' require 'lolita-translation/builder/mongoid_builder' require 'lolita-translation/utils' module Lolita module Translation # Create ORM class for translations. For Post class it will create PostTranslation class, # for News it will create NewsTranslation and so on class TranslationClassBuilder attr_reader :klass def initialize(base_class, configuration = nil) @klass = base_class @configuration = configuration detect_builder_class end def builder_available? !!@builder_class end def builder @builder ||= @builder_class && @builder_class.new(klass, @configuration) end def build_class if builder builder.build builder.klass else raise Lolita::Translation::NoBuilderForClassError.new(klass) end end def override_attributes(attributes) if builder builder.override_klass_attributes(attributes) else raise Lolita::Translation::NoBuilderForClassError.new(klass) end end private def detect_builder_class @builder_class ||= if Lolita::Translation::Utils.active_record_class?(klass) Lolita::Translation::Builder::ActiveRecordBuilder elsif Lolita::Translation::Utils.mongoid_class?(klass) Lolita::Translation::Builder::MongoidBuilder else nil end end end end end
Version data entries
15 entries across 15 versions & 1 rubygems