Class: TableStructure::Schema::ColumnConverters

Inherits:
Object
  • Object
show all
Defined in:
lib/table_structure/schema/column_converters.rb

Instance Method Summary collapse

Constructor Details

#initialize(converters) ⇒ ColumnConverters

Returns a new instance of ColumnConverters.



6
7
8
9
# File 'lib/table_structure/schema/column_converters.rb', line 6

def initialize(converters)
  @header_converters = select_converters_for(:header, converters)
  @row_converters = select_converters_for(:row, converters)
end

Instance Method Details

#extend_methods_for(table) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/table_structure/schema/column_converters.rb', line 11

def extend_methods_for(table)
  table_context = table.instance_variable_get(:@context)
  table_options = table.instance_variable_get(:@options)

  header_converters = @header_converters.merge(optional_header_converters(table_options))
  row_converters = @row_converters

  methods = {}
  unless header_converters.empty?
    methods[:header] = create_method(header_converters, table_context)
  end
  unless row_converters.empty?
    methods[:row] = create_method(row_converters, table_context)
  end

  return if methods.empty?

  table.extend ColumnConverter.new(methods)
end