Class: Lolita::Translation::Builder::AbstractBuilder

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

Direct Known Subclasses

ActiveRecordBuilder

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_class, configuration = nil, superclass = nil) ⇒ AbstractBuilder

Returns a new instance of AbstractBuilder.



8
9
10
11
12
13
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 8

def initialize(base_class, configuration = nil, superclass = nil)
  @superclass     = superclass
  @base_klass     = base_class
  @configuration  = configuration
  @klass          = create_klass
end

Instance Attribute Details

#base_klassObject (readonly)

Returns the value of attribute base_klass.



6
7
8
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 6

def base_klass
  @base_klass
end

#configurationObject (readonly)

Returns the value of attribute configuration.



6
7
8
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 6

def configuration
  @configuration
end

#klassObject (readonly)

Returns the value of attribute klass.



6
7
8
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 6

def klass
  @klass
end

Instance Method Details

#association_keyObject



27
28
29
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 27

def association_key
  @configuration && @configuration.association_key
end

#association_nameObject



23
24
25
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 23

def association_name
  @configuration && @configuration.demodulized_class_name
end

#buildObject



19
20
21
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 19

def build
  implementation_warn
end

#class_nameObject



15
16
17
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 15

def class_name
  "#{@base_klass.to_s}Translation"
end

#locale_field_nameObject



35
36
37
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 35

def locale_field_name
  @configuration && @configuration.locale_field_name
end

#override_klass_attributes(method_names) ⇒ Object



43
44
45
46
47
48
49
50
51
52
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 43

def override_klass_attributes method_names
  method_names.each do |method_name, attribute|
    validate_attribute_method_and_attribute(method_name, attribute)
    base_klass.instance_eval do
      define_method(method_name) do
        translation_record.attribute(attribute)
      end
    end
  end
end

#table_nameObject



39
40
41
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 39

def table_name
  @configuration && @configuration.table_name
end

#translations_association_nameObject



31
32
33
# File 'lib/lolita-translation/builder/abstract_builder.rb', line 31

def translations_association_name
  @configuration && @configuration.association_name
end