Module: TableStructure::Schema::ClassMethods

Defined in:
lib/table_structure/schema/class_methods.rb

Instance Method Summary collapse

Instance Method Details

#+(schema) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/table_structure/schema/class_methods.rb', line 6

def +(schema)
  self_schema = self
  Class.new do
    include ::TableStructure::Schema

    @__column_definitions__ = [
      self_schema.column_definitions,
      schema.column_definitions
    ].flatten

    @__context_builders__ =
      {}
      .merge!(self_schema.context_builders)
      .merge!(schema.context_builders)

    @__column_converters__ =
      {}
      .merge!(self_schema.column_converters)
      .merge!(schema.column_converters)

    @__result_builders__ =
      {}
      .merge!(self_schema.result_builders)
      .merge!(schema.result_builders)
  end
end