Sha256: 90ae31746c2f154ca42b4bf2d5ab48d330a1e2d219e74aae9cd05feaed77438e
Contents?: true
Size: 829 Bytes
Versions: 2
Compression:
Stored size: 829 Bytes
Contents
class ODSExtractor::RowOutput def initialize(use_header_row:, &row_handler_block) @header_cells = [] @row_handler = row_handler_block @use_header_row = use_header_row end def start_sheet(sheet_name) @sheet_name = sheet_name @header_cells = nil end def write_row(row_values) if @use_header_row if @header_cells @row_handler.call(sheet_name: @sheet_name, row: build_row_hash(row_values)) else @header_cells = row_values.map(&:to_s) end else @row_handler.call(sheet_name: @sheet_name, row: row_values) end end def end_sheet end def build_row_hash(row_values) padded_row = row_values.take(@header_cells.length) (@header_cells.length - padded_row.length).times { padded_row << nil } @header_cells.zip(padded_row).to_h end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ods_extractor-0.1.1 | lib/ods_extractor/row_output.rb |
ods_extractor-0.1.0 | lib/ods_extractor/row_output.rb |