lib/table.rb in table_pal-0.1.0 vs lib/table.rb in table_pal-0.2.0

- old
+ new

@@ -8,26 +8,34 @@ @columns = [] @cells = [] end def create_row(options = {}) + Validate.new(__method__, options) + Row.new(options.merge(table: self)).tap do |row| @rows << row end end def create_underline Row.new(table: self).cells_as_underline end def create_column(options = {}) + Validate.new(__method__, options) + Column.new(options.merge(table: self)).tap do |column| @columns << column end end def create_cell(options = {}) + Validate.new(__method__, options) + + ensure_cell_does_not_exist(options.slice(:row, :column)) + Cell.new(options).tap do |cell| @cells << cell end end @@ -35,9 +43,17 @@ cells.find { |cell| cell.row == row && cell.column == column } end def select_cells(column:) cells.select { |cell| cell.column == column } + end + + def ensure_cell_does_not_exist(row:, column:) + cell = find_cell(row: row, column: column) + + return unless cell + + raise TablePalError, "Cell with content: '#{cell.content}' already exists at this row and column." end end end