class TableStructure::Table
Constants
- DEFAULT_ROW_BUILDERS
Public Class Methods
new(schema, row_type: :array) { |self| ... }
click to toggle source
# File lib/table_structure/table.rb, line 13 def initialize(schema, row_type: :array) @header_row_generator = schema.create_header_row_generator @data_row_generator = schema.create_data_row_generator row_builders = DEFAULT_ROW_BUILDERS .merge(schema.row_builders) .select { |_k, v| v.typed?(row_type) } .values unless row_builders.empty? row_build_task = proc do |row| row.values = row_builders.reduce(row.values) do |values, builder| builder.call(values, row.keys, row.context, schema.context) end row end @header_row_generator.compose(row_build_task) @data_row_generator.compose(row_build_task) end yield self if block_given? end
Public Instance Methods
body(contexts)
click to toggle source
# File lib/table_structure/table.rb, line 41 def body(contexts) ::Enumerator.new do |y| contexts.each { |context| y << @data_row_generator.call(context).values } end end
header(context: nil)
click to toggle source
# File lib/table_structure/table.rb, line 37 def header(context: nil) @header_row_generator.call(context).values end