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