module RgGen::SpreadsheetLoader::SpreadsheetLoader

Constants

Position
SUB_LAYERS

Public Instance Methods

read_file(file) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 8
def read_file(file)
  Spreadsheet::Book.new(file) { |book| read_spreadsheet(file, book) }
end

Private Instance Methods

bit_field_cells(row) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 39
def bit_field_cells(row)
  start_column = bit_field_start_position.column
  size = valid_values(:bit_field).size
  row.cells(start_column, size)
end
bit_field_start_column() click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 94
def bit_field_start_column
  register_start_position.column + valid_values(:register).size
end
bit_field_start_position() click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 89
def bit_field_start_position
  @bit_field_start_position ||=
    Position.new(0, bit_field_start_column)
end
collect_bit_field_data(rows) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 76
def collect_bit_field_data(rows)
  rows
end
collect_layer_data(read_data, layer) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 19
def collect_layer_data(read_data, layer)
  values = valid_values(layer)
  cells = __send__("#{layer}_cells", read_data)
  values.zip(cells).to_h
end
collect_register_block_data(book) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 56
def collect_register_block_data(book)
  book.sheets
end
collect_register_data(sheet) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 60
def collect_register_data(sheet)
  sheet
    .rows(register_start_position.row)
    .reject { |row| row.cells.all?(&:empty_cell?) }
    .each_with_object([], &method(:collect_register_rows))
end
collect_register_rows(row, row_sets) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 67
def collect_register_rows(row, row_sets)
  register_begin?(row) && (row_sets << [])
  row_sets.last << row
end
format_layer_data(read_data, layer, _file) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 14
def format_layer_data(read_data, layer, _file)
  return if layer == :root
  collect_layer_data(read_data, layer)
end
format_sub_layer_data(read_data, layer, _file) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 51
def format_sub_layer_data(read_data, layer, _file)
  sub_layer = SUB_LAYERS[layer]
  sub_layer && { sub_layer => __send__("collect_#{sub_layer}_data", read_data) }
end
register_begin?(row) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 72
def register_begin?(row)
  !row[register_start_position.column].empty_cell?
end
register_block_cells(sheet) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 25
def register_block_cells(sheet)
  start_row = register_block_start_position.row
  start_column = register_block_start_position.column
  Array.new(valid_values(:register_block).size) do |i|
    sheet[start_row + i, start_column]
  end
end
register_block_start_position() click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 80
def register_block_start_position
  @register_block_start_position ||= Position.new(0, 2)
end
register_cells(rows) click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 33
def register_cells(rows)
  start_column = register_start_position.column
  size = valid_values(:register).size
  rows.first.cells(start_column, size)
end
register_start_position() click to toggle source
# File lib/rggen/spreadsheet_loader/spreadsheet_loader.rb, line 84
def register_start_position
  @register_start_position ||=
    Position.new(valid_values(:register_block).size + 2, 1)
end