Class: Lolita::Translation::TranslationClassBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/lolita-translation/translation_class_builder.rb

Overview

Create ORM class for translations. For Post class it will create PostTranslation class, for News it will create NewsTranslation and so on

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_class, configuration = nil) ⇒ TranslationClassBuilder

Returns a new instance of TranslationClassBuilder.



14
15
16
17
18
# File 'lib/lolita-translation/translation_class_builder.rb', line 14

def initialize(base_class, configuration = nil) 
  @klass          = base_class
  @configuration  = configuration
  detect_builder_class
end

Instance Attribute Details

#klassObject (readonly)

Returns the value of attribute klass.



12
13
14
# File 'lib/lolita-translation/translation_class_builder.rb', line 12

def klass
  @klass
end

Instance Method Details

#build_classObject



28
29
30
31
32
33
34
35
# File 'lib/lolita-translation/translation_class_builder.rb', line 28

def build_class
  if builder
    builder.build
    builder.klass
  else
    raise Lolita::Translation::NoBuilderForClassError.new(klass)
  end
end

#builderObject



24
25
26
# File 'lib/lolita-translation/translation_class_builder.rb', line 24

def builder
  @builder ||= @builder_class && @builder_class.new(klass, @configuration)
end

#builder_available?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/lolita-translation/translation_class_builder.rb', line 20

def builder_available?
  !!@builder_class
end

#override_attributes(attributes) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/lolita-translation/translation_class_builder.rb', line 37

def override_attributes(attributes)
  if builder 
    builder.override_klass_attributes(attributes)
  else
    raise Lolita::Translation::NoBuilderForClassError.new(klass)
  end
end