From cac5b8a3240bee9b669fe63bc0585d9294cd5b80 Mon Sep 17 00:00:00 2001 From: Edward Anderson Date: Wed, 2 Jan 2013 18:44:59 -0500 Subject: Don't add worksheets to the workbook when initialize fails Creating a worksheet with an invalid name would still add it to the workbook, despite raising an exception. --- lib/axlsx/workbook/worksheet/worksheet.rb | 2 +- test/workbook/worksheet/tc_worksheet.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb index 26385573..b02af18e 100644 --- a/lib/axlsx/workbook/worksheet/worksheet.rb +++ b/lib/axlsx/workbook/worksheet/worksheet.rb @@ -23,11 +23,11 @@ module Axlsx # @option options [Boolean] show_gridlines indicates if gridlines should be shown for this sheet. def initialize(wb, options={}) self.workbook = wb - @workbook.worksheets << self @sheet_protection = nil initialize_page_options(options) parse_options options + @workbook.worksheets << self end # Initalizes page margin, setup and print options diff --git a/test/workbook/worksheet/tc_worksheet.rb b/test/workbook/worksheet/tc_worksheet.rb index 8280aca0..b576047d 100644 --- a/test/workbook/worksheet/tc_worksheet.rb +++ b/test/workbook/worksheet/tc_worksheet.rb @@ -492,4 +492,10 @@ class TestWorksheet < Test::Unit::TestCase assert_equal(true, @ws.sheet_view.show_outline_symbols) end + def test_worksheet_does_not_get_added_to_workbook_on_initialize_failure + assert_equal(1, @wb.worksheets.size) + assert_raise(ArgumentError) { @wb.add_worksheet(:name => 'Sheet1') } + assert_equal(1, @wb.worksheets.size) + end + end -- cgit v1.2.3