diff options
| author | Edward Anderson <[email protected]> | 2013-01-02 18:44:59 -0500 |
|---|---|---|
| committer | Edward Anderson <[email protected]> | 2013-01-02 18:44:59 -0500 |
| commit | cac5b8a3240bee9b669fe63bc0585d9294cd5b80 (patch) | |
| tree | 2aeecbcbd518a16756b75380b888512b51056e11 | |
| parent | f7eeb07abfa1c58552847b2b38787f44cd3e2d24 (diff) | |
| download | caxlsx-cac5b8a3240bee9b669fe63bc0585d9294cd5b80.tar.gz caxlsx-cac5b8a3240bee9b669fe63bc0585d9294cd5b80.zip | |
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.
| -rw-r--r-- | lib/axlsx/workbook/worksheet/worksheet.rb | 2 | ||||
| -rw-r--r-- | test/workbook/worksheet/tc_worksheet.rb | 6 |
2 files changed, 7 insertions, 1 deletions
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 |
