robust_excel_ole 1.1.5 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog +6 -0
  3. data/README.rdoc +2 -2
  4. data/docs/README_excel.rdoc +2 -3
  5. data/docs/README_open.rdoc +8 -12
  6. data/docs/README_ranges.rdoc +21 -9
  7. data/docs/README_sheet.rdoc +1 -1
  8. data/lib/robust_excel_ole/book.rb +3 -23
  9. data/lib/robust_excel_ole/excel.rb +2 -15
  10. data/lib/robust_excel_ole/reo_common.rb +11 -7
  11. data/lib/robust_excel_ole/sheet.rb +36 -15
  12. data/lib/robust_excel_ole/version.rb +1 -1
  13. data/robust_excel_ole.gemspec +1 -1
  14. data/spec/book_spec.rb +1 -1
  15. data/spec/book_specs/book_close_spec.rb +3 -3
  16. data/spec/book_specs/book_misc_spec.rb +25 -1
  17. data/spec/book_specs/book_open_spec.rb +299 -5
  18. data/spec/book_specs/book_sheet_spec.rb +1 -1
  19. data/spec/book_specs/book_unobtr_spec.rb +275 -35
  20. data/spec/data/another_workbook.xls +0 -0
  21. data/spec/data/different_workbook.xls +0 -0
  22. data/spec/data/workbook.xls +0 -0
  23. data/spec/excel_spec.rb +118 -5
  24. data/spec/helpers/key_sender.rb +2 -2
  25. data/spec/reo_common_spec.rb +0 -4
  26. data/spec/sheet_spec.rb +32 -0
  27. data/spec/spec_helper.rb +3 -0
  28. metadata +3 -21
  29. data/spec/ruby1.8.6_rspec2.14/book_spec.rb +0 -1421
  30. data/spec/ruby1.8.6_rspec2.14/book_specs/book_all_spec.rb +0 -22
  31. data/spec/ruby1.8.6_rspec2.14/book_specs/book_close_spec.rb +0 -252
  32. data/spec/ruby1.8.6_rspec2.14/book_specs/book_misc_spec.rb +0 -1070
  33. data/spec/ruby1.8.6_rspec2.14/book_specs/book_open_spec.rb +0 -1855
  34. data/spec/ruby1.8.6_rspec2.14/book_specs/book_save_spec.rb +0 -514
  35. data/spec/ruby1.8.6_rspec2.14/book_specs/book_sheet_spec.rb +0 -395
  36. data/spec/ruby1.8.6_rspec2.14/book_specs/book_subclass_spec.rb +0 -51
  37. data/spec/ruby1.8.6_rspec2.14/book_specs/book_unobtr_spec.rb +0 -1737
  38. data/spec/ruby1.8.6_rspec2.14/bookstore_spec.rb +0 -495
  39. data/spec/ruby1.8.6_rspec2.14/cell_spec.rb +0 -76
  40. data/spec/ruby1.8.6_rspec2.14/cygwin_spec.rb +0 -42
  41. data/spec/ruby1.8.6_rspec2.14/excel_spec.rb +0 -1820
  42. data/spec/ruby1.8.6_rspec2.14/general_spec.rb +0 -212
  43. data/spec/ruby1.8.6_rspec2.14/range_spec.rb +0 -131
  44. data/spec/ruby1.8.6_rspec2.14/reo_common_spec.rb +0 -130
  45. data/spec/ruby1.8.6_rspec2.14/sheet_spec.rb +0 -663
  46. data/spec/ruby1.8.6_rspec2.14/spec_helper.rb +0 -35
@@ -1,514 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- require File.join(File.dirname(__FILE__), './../spec_helper')
4
-
5
-
6
- $VERBOSE = nil
7
-
8
- include RobustExcelOle
9
- include General
10
-
11
- describe Book do
12
-
13
- before(:all) do
14
- excel = Excel.new(:reuse => true)
15
- open_books = excel == nil ? 0 : excel.Workbooks.Count
16
- puts "*** open books *** : #{open_books}" if open_books > 0
17
- Excel.kill_all
18
- end
19
-
20
- before do
21
- @dir = create_tmpdir
22
- @simple_file = @dir + '/workbook.xls'
23
- @simple_save_file = @dir + '/workbook_save.xls'
24
- @different_file = @dir + '/different_workbook.xls'
25
- @simple_file_other_path = @dir + '/more_data/workbook.xls'
26
- @another_simple_file_other_path = @dir + '/more_data/another_workbook.xls'
27
- @another_simple_file = @dir + '/another_workbook.xls'
28
- @linked_file = @dir + '/workbook_linked.xlsm'
29
- @simple_file_xlsm = @dir + '/workbook.xls'
30
- @simple_file_xlsx = @dir + '/workbook.xlsx'
31
- @simple_file1 = @simple_file
32
- @simple_file_other_path1 = @simple_file_other_path
33
- @another_simple_file_other_path1 = @another_simple_file_other_path
34
- @simple_save_file1 = @simple_save_file
35
- end
36
-
37
- after do
38
- Excel.kill_all
39
- # rm_tmp(@dir)
40
- end
41
-
42
- describe "save" do
43
-
44
- context "with simple save" do
45
-
46
- it "should save for a file opened without :read_only" do
47
- @book = Book.open(@simple_file)
48
- @book.add_sheet(@sheet, :as => 'a_name')
49
- @new_sheet_count = @book.ole_workbook.Worksheets.Count
50
- expect {
51
- @book.save
52
- }.to_not raise_error
53
- @book.ole_workbook.Worksheets.Count.should == @new_sheet_count
54
- @book.close
55
- end
56
-
57
- it "should raise error with read_only" do
58
- @book = Book.open(@simple_file, :read_only => true)
59
- expect {
60
- @book.save
61
- }.to raise_error(WorkbookReadOnly, "Not opened for writing (opened with :read_only option)")
62
- @book.close
63
- end
64
-
65
- it "should raise error if workbook is not alive" do
66
- @book = Book.open(@simple_file)
67
- @book.close
68
- expect{
69
- @book.save
70
- }.to raise_error(ObjectNotAlive, "workbook is not alive")
71
- end
72
-
73
- end
74
-
75
- context "with open with read only" do
76
- before do
77
- @book = Book.open(@simple_file, :read_only => true)
78
- end
79
-
80
- after do
81
- @book.close
82
- end
83
-
84
- it {
85
- expect {
86
- @book.save_as(@simple_file)
87
- }.to raise_error(WorkbookReadOnly,
88
- "Not opened for writing (opened with :read_only option)")
89
- }
90
- end
91
-
92
- context "with save_as" do
93
-
94
- it "should save to 'simple_save_file.xls'" do
95
- Book.open(@simple_file) do |book|
96
- book.save_as(@simple_save_file1, :if_exists => :overwrite)
97
- end
98
- File.exist?(@simple_save_file1).should be_true
99
- end
100
-
101
- it "should raise error if filename is nil" do
102
- book = Book.open(@simple_file)
103
- expect{
104
- book.save_as(@wrong_name)
105
- }.to raise_error(FileNameNotGiven, "filename is nil")
106
- end
107
-
108
- it "should raise error if workbook is not alive" do
109
- book = Book.open(@simple_file)
110
- book.close
111
- expect{
112
- book.save_as(@simple_save_file)
113
- }.to raise_error(ObjectNotAlive, "workbook is not alive")
114
- end
115
- end
116
-
117
- context "with different extensions" do
118
- before do
119
- @book = Book.open(@simple_file)
120
- end
121
-
122
- after do
123
- @book.close
124
- end
125
-
126
- possible_extensions = ['xls', 'xlsm', 'xlsx']
127
- possible_extensions.each do |extensions_value|
128
- it "should save to 'simple_save_file.#{extensions_value}'" do
129
- simple_save_file = @dir + '/simple_save_file.' + extensions_value
130
- File.delete simple_save_file rescue nil
131
- @book.save_as(simple_save_file, :if_exists => :overwrite)
132
- File.exist?(simple_save_file).should be_true
133
- new_book = Book.open(simple_save_file)
134
- new_book.should be_a Book
135
- new_book.close
136
- end
137
- end
138
- end
139
-
140
- context "with saving with the same name in another directory" do
141
-
142
- before do
143
- @book = Book.open(@simple_file1)
144
- end
145
-
146
- it "should save with the same name in another directory" do
147
- File.delete @simple_file_other_path1 rescue nil
148
- File.open(@simple_file_other_path1,"w") do | file |
149
- file.puts "garbage"
150
- end
151
- File.exist?(@simple_file_other_path1).should be_true
152
- @book.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :forget)
153
- end
154
-
155
- end
156
-
157
- context "with blocked by another file" do
158
-
159
- before do
160
- @book = Book.open(@simple_file1)
161
- @book2 = Book.open(@another_simple_file)
162
- end
163
-
164
- after do
165
- @book.close(:if_unsaved => :forget)
166
- @book2.close(:if_unsaved => :forget)
167
- end
168
-
169
- it "should raise an error with :obstructed => :raise" do
170
- File.delete @simple_file_other_path1 rescue nil
171
- File.open(@simple_file_other_path1,"w") do | file |
172
- file.puts "garbage"
173
- end
174
- File.exist?(@simple_file_other_path1).should be_true
175
- expect{
176
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :raise)
177
- }.to raise_error(WorkbookBlocked, /blocked by another workbook/)
178
- end
179
-
180
- it "should close the blocking workbook without saving, and save the current workbook with :if_obstructed => :forget" do
181
- File.delete @simple_file_other_path1 rescue nil
182
- File.open(@simple_file_other_path1,"w") do | file |
183
- file.puts "garbage"
184
- end
185
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :forget)
186
- @book.should_not be_alive
187
- File.exist?(@simple_file_other_path1).should be_true
188
- new_book = Book.open(@simple_file_other_path1)
189
- new_book.should be_a Book
190
- new_book.close
191
- end
192
-
193
- it "should close the blocking workbook without saving even if it is unsaved with :if_obstructed => :forget" do
194
- File.delete @simple_file_other_path1 rescue nil
195
- File.open(@simple_file_other_path1,"w") do | file |
196
- file.puts "garbage"
197
- end
198
- sheet = @book.sheet(1)
199
- cell_value = sheet[1,1].value
200
- sheet[1,1] = sheet[1,1].value == "foo" ? "bar" : "foo"
201
- @book.Saved.should be_false
202
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :forget)
203
- @book.should_not be_alive
204
- @book2.should be_alive
205
- File.exist?(@simple_file_other_path1).should be_true
206
- new_book = Book.open(@simple_file_other_path1)
207
- new_book.should be_a Book
208
- new_book.close
209
- old_book = Book.open(@simple_file1)
210
- old_sheet = old_book.sheet(1)
211
- old_sheet[1,1].value.should == cell_value
212
- old_book.close
213
- end
214
-
215
- it "should save and close the blocking workbook, and save the current workbook with :if_obstructed => :save" do
216
- File.delete @simple_file_other_path1 rescue nil
217
- File.open(@simple_file_other_path1,"w") do | file |
218
- file.puts "garbage"
219
- end
220
- sheet = @book.sheet(1)
221
- cell_value = sheet[1,1].value
222
- sheet[1,1] = sheet[1,1].value == "foo" ? "bar" : "foo"
223
- @book.Saved.should be_false
224
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :save)
225
- @book.should_not be_alive
226
- @book2.should be_alive
227
- File.exist?(@simple_file_other_path1).should be_true
228
- new_book = Book.open(@simple_file_other_path1)
229
- new_book.should be_a Book
230
- new_book.close
231
- old_book = Book.open(@simple_file1)
232
- old_sheet = old_book.sheet(1)
233
- old_sheet[1,1].value.should_not == cell_value
234
- old_book.close
235
- end
236
-
237
- it "should close the blocking workbook if it was saved, and save the current workbook with :if_obstructed => :close_if_saved" do
238
- File.delete @simple_file_other_path1 rescue nil
239
- File.open(@simple_file_other_path1,"w") do | file |
240
- file.puts "garbage"
241
- end
242
- @book.Saved.should be_true
243
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :close_if_saved)
244
- @book.should_not be_alive
245
- @book2.should be_alive
246
- File.exist?(@simple_file_other_path1).should be_true
247
- new_book = Book.open(@simple_file_other_path1)
248
- new_book.should be_a Book
249
- new_book.close
250
- end
251
-
252
- it "should raise an error if the blocking workbook was unsaved with :if_obstructed => :close_if_saved" do
253
- sheet = @book.sheet(1)
254
- cell_value = sheet[1,1].value
255
- sheet[1,1] = sheet[1,1].value == "foo" ? "bar" : "foo"
256
- @book.Saved.should be_false
257
- expect{
258
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :close_if_saved)
259
- }.to raise_error(WorkbookBlocked, /blocking workbook is unsaved: "workbook.xls"/)
260
- end
261
-
262
- it "should raise an error with an invalid option" do
263
- File.delete @simple_file_other_path1 rescue nil
264
- File.open(@simple_file_other_path1,"w") do | file |
265
- file.puts "garbage"
266
- end
267
- File.exist?(@simple_file_other_path1).should be_true
268
- expect{
269
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :invalid)
270
- }.to raise_error(OptionInvalid, ":if_obstructed: invalid option: :invalid")
271
- end
272
-
273
- it "should raise an error by default" do
274
- File.delete @simple_file_other_path1 rescue nil
275
- File.open(@simple_file_other_path1,"w") do | file |
276
- file.puts "garbage"
277
- end
278
- File.exist?(@simple_file_other_path1).should be_true
279
- expect{
280
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite)
281
- }.to raise_error(WorkbookBlocked, /blocked by another workbook/)
282
- end
283
-
284
- it "should raise an error if the file does not exist and an workbook with the same name and other path exists" do
285
- File.delete @simple_file_other_path1 rescue nil
286
- File.exist?(@simple_file_other_path1).should be_false
287
- expect{
288
- @book2.save_as(@simple_file_other_path1, :if_exists => :overwrite, :if_obstructed => :raise)
289
- }.to raise_error(WorkbookBlocked, /blocked by another workbook/)
290
- end
291
-
292
- it "should raise an error if the file exists and an workbook with the same name and other path exists" do
293
- File.delete @simple_file_other_path1 rescue nil
294
- File.open(@simple_file_other_path1,"w") do | file |
295
- file.puts "garbage"
296
- end
297
- File.exist?(@simple_file_other_path1).should be_true
298
- expect{
299
- @book.save_as(@simple_file_other_path1, :if_exists => :raise, :if_obstructed => :raise)
300
- }.to raise_error(FileAlreadyExists, /file already exists: "workbook.xls"/)
301
- end
302
-
303
- end
304
-
305
-
306
- # options :overwrite, :raise, :excel, no option, invalid option
307
- possible_displayalerts = [true, false]
308
- possible_displayalerts.each do |displayalert_value|
309
- context "with displayalerts=#{displayalert_value}" do
310
- before do
311
- @book = Book.open(@simple_file)
312
- @book.excel.displayalerts = displayalert_value
313
- end
314
-
315
- after do
316
- @book.close
317
- end
318
-
319
- it "should raise an error if the book is open" do
320
- File.delete @simple_save_file1 rescue nil
321
- FileUtils.copy @simple_file, @simple_save_file1
322
- book_save = Book.open(@simple_save_file1, :excel => :new)
323
- expect{
324
- @book.save_as(@simple_save_file1, :if_exists => :overwrite)
325
- }.to raise_error(WorkbookBeingUsed, "workbook is open and used in Excel")
326
- book_save.close
327
- end
328
-
329
- it "should save to simple_save_file.xls with :if_exists => :overwrite" do
330
- File.delete @simple_save_file1 rescue nil
331
- File.open(@simple_save_file1,"w") do | file |
332
- file.puts "garbage"
333
- end
334
- @book.save_as(@simple_save_file1, :if_exists => :overwrite)
335
- File.exist?(@simple_save_file1).should be_true
336
- new_book = Book.open(@simple_save_file1)
337
- new_book.should be_a Book
338
- new_book.close
339
- end
340
-
341
- it "should simple save if file name is equal to the old one with :if_exists => :overwrite" do
342
- sheet = @book.sheet(1)
343
- sheet[1,1] = sheet[1,1].value == "foo" ? "bar" : "foo"
344
- new_value = sheet[1,1].value
345
- @book.save_as(@simple_file1, :if_exists => :overwrite)
346
- new_book = Book.open(@simple_file1)
347
- new_sheet = new_book.sheet(1)
348
- new_sheet[1,1].value.should == new_value
349
- new_book.close
350
- end
351
-
352
- it "should save to 'simple_save_file.xls' with :if_exists => :raise" do
353
- dirname, basename = File.split(@simple_save_file)
354
- File.delete @simple_save_file1 rescue nil
355
- File.open(@simple_save_file1,"w") do | file |
356
- file.puts "garbage"
357
- end
358
- File.exist?(@simple_save_file1).should be_true
359
- booklength = File.size?(@simple_save_file1)
360
- expect {
361
- @book.save_as(@simple_save_file1, :if_exists => :raise)
362
- }.to raise_error(FileAlreadyExists, /file already exists: "workbook_save.xls"/)
363
- File.exist?(@simple_save_file1).should be_true
364
- File.size?(@simple_save_file1).should == booklength
365
- end
366
-
367
- context "with :if_exists => :alert" do
368
- before do
369
- File.delete @simple_save_file1 rescue nil
370
- File.open(@simple_save_file1,"w") do | file |
371
- file.puts "garbage"
372
- end
373
- @garbage_length = File.size?(@simple_save_file1)
374
- @key_sender = IO.popen 'ruby "' + File.join(File.dirname(__FILE__), '../helpers/key_sender.rb') + '" "Microsoft Excel" ' , "w"
375
- end
376
-
377
- after do
378
- @key_sender.close
379
- end
380
-
381
- it "should save if user answers 'yes'" do
382
- # "Yes" is to the left of "No", which is the default. --> language independent
383
- @key_sender.puts "{left}{enter}" #, :initial_wait => 0.2, :if_target_missing=>"Excel window not found")
384
- @book.save_as(@simple_save_file1, :if_exists => :alert)
385
- File.exist?(@simple_save_file1).should be_true
386
- File.size?(@simple_save_file1).should > @garbage_length
387
- @book.excel.DisplayAlerts.should == displayalert_value
388
- new_book = Book.open(@simple_save_file1, :excel => :new)
389
- new_book.should be_a Book
390
- new_book.close
391
- @book.excel.DisplayAlerts.should == displayalert_value
392
- end
393
-
394
- it "should not save if user answers 'no'" do
395
- # Just give the "Enter" key, because "No" is the default. --> language independent
396
- # strangely, in the "no" case, the question will sometimes be repeated three times
397
- @key_sender.puts "{enter}"
398
- @key_sender.puts "{enter}"
399
- @key_sender.puts "{enter}"
400
- #@key_sender.puts "%{n}" #, :initial_wait => 0.2, :if_target_missing=>"Excel window not found")
401
- @book.save_as(@simple_save_file1, :if_exists => :alert)
402
- File.exist?(@simple_save_file1).should be_true
403
- File.size?(@simple_save_file1).should == @garbage_length
404
- @book.excel.DisplayAlerts.should == displayalert_value
405
- end
406
-
407
- it "should not save if user answers 'cancel'" do
408
- # 'Cancel' is right from 'yes'
409
- # strangely, in the "no" case, the question will sometimes be repeated three times
410
- @key_sender.puts "{right}{enter}"
411
- @key_sender.puts "{right}{enter}"
412
- @key_sender.puts "{right}{enter}"
413
- #@key_sender.puts "%{n}" #, :initial_wait => 0.2, :if_target_missing=>"Excel window not found")
414
- @book.save_as(@simple_save_file1, :if_exists => :alert)
415
- File.exist?(@simple_save_file1).should be_true
416
- File.size?(@simple_save_file1).should == @garbage_length
417
- @book.excel.DisplayAlerts.should == displayalert_value
418
- end
419
-
420
- end
421
-
422
- context "with :if_exists => :excel" do
423
- before do
424
- File.delete @simple_save_file1 rescue nil
425
- File.open(@simple_save_file1,"w") do | file |
426
- file.puts "garbage"
427
- end
428
- @garbage_length = File.size?(@simple_save_file)
429
- @key_sender = IO.popen 'ruby "' + File.join(File.dirname(__FILE__), '../helpers/key_sender.rb') + '" "Microsoft Excel" ' , "w"
430
- end
431
-
432
- after do
433
- @key_sender.close
434
- end
435
-
436
- it "should save if user answers 'yes'" do
437
- # "Yes" is to the left of "No", which is the default. --> language independent
438
- @key_sender.puts "{left}{enter}" #, :initial_wait => 0.2, :if_target_missing=>"Excel window not found")
439
- @book.save_as(@simple_save_file1, :if_exists => :excel)
440
- File.exist?(@simple_save_file1).should be_true
441
- File.size?(@simple_save_file1).should > @garbage_length
442
- @book.excel.DisplayAlerts.should == displayalert_value
443
- new_book = Book.open(@simple_save_file1, :excel => :new)
444
- new_book.should be_a Book
445
- new_book.close
446
- @book.excel.DisplayAlerts.should == displayalert_value
447
- end
448
-
449
- it "should not save if user answers 'no'" do
450
- # Just give the "Enter" key, because "No" is the default. --> language independent
451
- # strangely, in the "no" case, the question will sometimes be repeated three times
452
- @key_sender.puts "{enter}"
453
- @key_sender.puts "{enter}"
454
- @key_sender.puts "{enter}"
455
- #@key_sender.puts "%{n}" #, :initial_wait => 0.2, :if_target_missing=>"Excel window not found")
456
- @book.save_as(@simple_save_file1, :if_exists => :excel)
457
- File.exist?(@simple_save_file1).should be_true
458
- File.size?(@simple_save_file1).should == @garbage_length
459
- @book.excel.DisplayAlerts.should == displayalert_value
460
- end
461
-
462
- it "should not save if user answers 'cancel'" do
463
- # 'Cancel' is right from 'yes'
464
- # strangely, in the "no" case, the question will sometimes be repeated three times
465
- @key_sender.puts "{right}{enter}"
466
- @key_sender.puts "{right}{enter}"
467
- @key_sender.puts "{right}{enter}"
468
- #@key_sender.puts "%{n}" #, :initial_wait => 0.2, :if_target_missing=>"Excel window not found")
469
- @book.save_as(@simple_save_file1, :if_exists => :excel)
470
- File.exist?(@simple_save_file1).should be_true
471
- File.size?(@simple_save_file1).should == @garbage_length
472
- @book.excel.DisplayAlerts.should == displayalert_value
473
- end
474
-
475
- it "should report save errors and leave DisplayAlerts unchanged" do
476
- #@key_sender.puts "{left}{enter}" #, :initial_wait => 0.2, :if_target_missing=>"Excel window not found")
477
- @book.ole_workbook.Close
478
- expect{
479
- @book.save_as(@simple_save_file1, :if_exists => :excel)
480
- }.to raise_error(ObjectNotAlive, "workbook is not alive")
481
- File.exist?(@simple_save_file1).should be_true
482
- File.size?(@simple_save_file1).should == @garbage_length
483
- @book.excel.DisplayAlerts.should == displayalert_value
484
- end
485
-
486
- end
487
-
488
- it "should save to 'simple_save_file.xls' with :if_exists => nil" do
489
- dirname, basename = File.split(@simple_save_file1)
490
- File.delete @simple_save_file1 rescue nil
491
- File.open(@simple_save_file1,"w") do | file |
492
- file.puts "garbage"
493
- end
494
- File.exist?(@simple_save_file1).should be_true
495
- booklength = File.size?(@simple_save_file1)
496
- expect {
497
- @book.save_as(@simple_save_file1)
498
- }.to raise_error(FileAlreadyExists, /file already exists: "workbook_save.xls"/)
499
- File.exist?(@simple_save_file1).should be_true
500
- File.size?(@simple_save_file1).should == booklength
501
- end
502
-
503
- it "should save to 'simple_save_file.xls' with :if_exists => :invalid" do
504
- File.delete @simple_save_file1 rescue nil
505
- @book.save_as(@simple_save_file1)
506
- expect {
507
- @book.save_as(@simple_save_file1, :if_exists => :invalid)
508
- }.to raise_error(OptionInvalid, ':if_exists: invalid option: :invalid')
509
- end
510
- end
511
- end
512
- end
513
- end
514
-