Class: TableStructure::Schema::Table

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

Constant Summary collapse

RESULT_BUILDERS =
{
  hash: ->(values, keys, *) { keys.zip(values).to_h }
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(column_definitions, column_converters, result_builders, context, options) ⇒ Table

Returns a new instance of Table.



12
13
14
15
16
17
18
# File 'lib/table_structure/schema/table.rb', line 12

def initialize(column_definitions, column_converters, result_builders, context, options)
  @columns = build_columns(column_definitions, context, options)
  @column_converters = column_converters
  @result_builders = result_builders
  @context = context
  @options = options
end

Instance Attribute Details

#column_convertersObject (readonly)

Returns the value of attribute column_converters.



10
11
12
# File 'lib/table_structure/schema/table.rb', line 10

def column_converters
  @column_converters
end

#columnsObject (readonly)

Returns the value of attribute columns.



10
11
12
# File 'lib/table_structure/schema/table.rb', line 10

def columns
  @columns
end

#optionsObject (readonly)

Returns the value of attribute options.



10
11
12
# File 'lib/table_structure/schema/table.rb', line 10

def options
  @options
end

#result_buildersObject (readonly)

Returns the value of attribute result_builders.



10
11
12
# File 'lib/table_structure/schema/table.rb', line 10

def result_builders
  @result_builders
end

Instance Method Details

#header_values(context, result_type = nil) ⇒ Object

TODO



20
21
22
# File 'lib/table_structure/schema/table.rb', line 20

def header_values(context, result_type = nil) # TODO
  values(:name, result_type, context)
end

#keysObject



28
29
30
# File 'lib/table_structure/schema/table.rb', line 28

def keys
  @keys ||= @columns.map(&:key).flatten
end

#row_values(context, result_type = nil) ⇒ Object

TODO



24
25
26
# File 'lib/table_structure/schema/table.rb', line 24

def row_values(context, result_type = nil) # TODO
  values(:value, result_type, context)
end