robust_excel_ole 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/README.rdoc +69 -56
  2. data/README_detail.rdoc +44 -34
  3. data/TodoList.md +8 -6
  4. data/examples/edit_sheets/example_access_sheets_and_cells.rb +6 -6
  5. data/examples/edit_sheets/example_adding_sheets.rb +2 -2
  6. data/examples/edit_sheets/example_ranges.rb +3 -3
  7. data/examples/open_save_close/example_control_to_excel.rb +2 -2
  8. data/examples/open_save_close/example_default_excel.rb +2 -2
  9. data/examples/open_save_close/example_force_excel.rb +1 -1
  10. data/examples/open_save_close/example_if_obstructed_closeifsaved.rb +4 -4
  11. data/examples/open_save_close/example_if_obstructed_forget.rb +2 -2
  12. data/examples/open_save_close/example_if_obstructed_save.rb +2 -2
  13. data/examples/open_save_close/example_if_unsaved_accept.rb +1 -1
  14. data/examples/open_save_close/example_if_unsaved_forget.rb +1 -1
  15. data/examples/open_save_close/example_if_unsaved_forget_more.rb +1 -1
  16. data/examples/open_save_close/example_read_only.rb +2 -2
  17. data/examples/open_save_close/example_rename_cells.rb +1 -1
  18. data/examples/open_save_close/example_reuse.rb +3 -3
  19. data/examples/open_save_close/example_simple.rb +2 -2
  20. data/examples/open_save_close/example_unobtrusively.rb +1 -1
  21. data/lib/robust_excel_ole/book.rb +97 -128
  22. data/lib/robust_excel_ole/book_store.rb +23 -23
  23. data/lib/robust_excel_ole/excel.rb +12 -14
  24. data/lib/robust_excel_ole/version.rb +1 -1
  25. data/spec/book_spec.rb +462 -289
  26. data/spec/book_store_spec.rb +36 -55
  27. data/spec/data/book_with_blank.xls +0 -0
  28. data/spec/data/{different_simple.xls → different_workbook.xls} +0 -0
  29. data/spec/data/merge_cells.xls +0 -0
  30. data/spec/data/{more_simple.xls → more_workbook.xls} +0 -0
  31. data/spec/data/protected_sheet.xls +0 -0
  32. data/spec/data/{simple.xls → workbook.xls} +0 -0
  33. data/spec/data/{simple.xlsm → workbook.xlsm} +0 -0
  34. data/spec/data/{simple.xlsx → workbook.xlsx} +0 -0
  35. data/spec/excel_spec.rb +40 -0
  36. metadata +9 -9
@@ -47,10 +47,10 @@ describe BookStore do
47
47
  before do
48
48
  @bookstore = BookStore.new
49
49
  @dir = create_tmpdir
50
- @simple_file = @dir + '/simple.xls'
51
- @simple_save_file = @dir + '/simple_save.xls'
52
- @different_file = @dir + '/different_simple.xls'
53
- @simple_file_other_path = @dir + '/more_data/simple.xls'
50
+ @simple_file = @dir + '/workbook.xls'
51
+ @simple_save_file = @dir + '/workbook_save.xls'
52
+ @different_file = @dir + '/different_workbook.xls'
53
+ @simple_file_other_path = @dir + '/more_data/workbook.xls'
54
54
  end
55
55
 
56
56
  after do
@@ -273,7 +273,7 @@ describe BookStore do
273
273
  @bookstore.store(@book2)
274
274
  @bookstore.store(@book3)
275
275
  sheet = @book3[0]
276
- sheet[0,0] = sheet[0,0].value == "simple" ? "complex" : "simple"
276
+ sheet[0,0] = sheet[0,0].Value == "simple" ? "complex" : "simple"
277
277
  @book.ReadOnly.should be_true
278
278
  @book2.ReadOnly.should be_false
279
279
  @book3.ReadOnly.should be_true
@@ -394,67 +394,48 @@ describe BookStore do
394
394
  end
395
395
  end
396
396
 
397
- describe "excel_list" do
398
-
399
- context "with no books" do
400
-
401
- it "should yield nil" do
402
- @bookstore.excel_list.should == {}
403
- end
397
+ describe "hidden_excel" do
404
398
 
405
- end
399
+ context "with some open book" do
406
400
 
407
- context "with open books" do
408
-
409
401
  before do
410
402
  @book = Book.open(@simple_file)
411
- @bookstore.store(@book)
412
403
  end
413
404
 
414
405
  after do
415
406
  @book.close
416
407
  end
417
408
 
418
- it "should yield an excel and the workbook" do
419
- excels = @bookstore.excel_list
420
- excels.size.should == 1
421
- excels.each do |excel,workbooks|
422
- excel.should be_a Excel
423
- workbooks.size.should == 1
424
- workbooks.each do |workbook|
425
- workbook.should == @book.workbook
426
- end
427
- end
428
- end
429
-
430
- it "should yield an excel with two books" do
431
- book1 = Book.open(@different_file)
432
- @bookstore.store(book1)
433
- excels = @bookstore.excel_list
434
- excels.size.should == 1
435
- excels.each do |excel,workbooks|
436
- excel.should be_a Excel
437
- workbooks.size.should == 2
438
- #workbooks[0].should == @book.workbook
439
- #workbooks[1].should == book1.workbook
440
- end
441
- end
442
-
443
- it "should yield two excels and two books" do
444
- e = Excel.create
445
- book1 = Book.open(@simple_file, :force_excel => :new)
409
+ it "should create and use a hidden Excel instance" do
410
+ h_excel0 = @bookstore.try_hidden_excel
411
+ h_excel0.should == nil
412
+ h_excel1 = @bookstore.ensure_hidden_excel
413
+ h_excel1.should == @bookstore.try_hidden_excel
414
+ h_excel1.should_not == @book.excel
415
+ h_excel1.Visible.should be_false
416
+ h_excel1.DisplayAlerts.should be_false
417
+ book1 = Book.open(@simple_file, :force_excel => @bookstore.ensure_hidden_excel)
418
+ book1.excel.should === h_excel1
419
+ book1.excel.should_not === @book.excel
420
+ Excel.close_all
421
+ h_excel2 = @bookstore.ensure_hidden_excel
422
+ h_excel2.should_not == @book.excel
423
+ h_excel2.should_not == book1.excel
424
+ h_excel2.Visible.should be_false
425
+ h_excel2.DisplayAlerts.should be_false
426
+ book2 = Book.open(@simple_file, :force_excel => @bookstore.ensure_hidden_excel)
427
+ book2.excel.should === h_excel2
428
+ book2.excel.should_not === @book.excel
429
+ book2.excel.should_not === book1.excel
430
+ end
431
+
432
+ it "should exclude hidden excel" do
433
+ book1 = Book.open(@simple_file, :force_excel => @bookstore.ensure_hidden_excel)
446
434
  @bookstore.store(book1)
447
- excels = @bookstore.excel_list
448
- excels.size.should == 2
449
- num = 0
450
- excels.each do |excel,workbooks|
451
- num = num + 1
452
- excel.should be_a Excel
453
- workbooks.size.should == 1
454
- #workbooks[0].should == @book.workbook if num == 1
455
- #workbooks[0].should == book1.workbook if num == 2
456
- end
457
- end
435
+ book1.close
436
+ book2 = @bookstore.fetch(@simple_file)
437
+ book2.should == nil
438
+ end
458
439
  end
459
440
  end
460
441
  end
Binary file
Binary file
File without changes
Binary file
File without changes
File without changes
data/spec/excel_spec.rb CHANGED
@@ -8,8 +8,18 @@ module RobustExcelOle
8
8
 
9
9
  describe Excel do
10
10
 
11
+ before(:all) do
12
+ Excel.close_all
13
+ end
14
+
11
15
  before do
16
+ @dir = create_tmpdir
17
+ @simple_file = @dir + '/simple.xls'
18
+ end
19
+
20
+ after do
12
21
  Excel.close_all
22
+ rm_tmp(@dir)
13
23
  end
14
24
 
15
25
  context "excel creation" do
@@ -109,6 +119,12 @@ module RobustExcelOle
109
119
  @excel1.should_not == nil
110
120
  end
111
121
 
122
+ it "should be false with dead Excel objects" do
123
+ excel2 = Excel.current
124
+ Excel.close_all
125
+ excel2.should_not == @excel1
126
+ end
127
+
112
128
  end
113
129
 
114
130
  context "with Visible and DisplayAlerts" do
@@ -225,6 +241,30 @@ module RobustExcelOle
225
241
  excel3.should_not == excel4
226
242
  end
227
243
  end
244
+
245
+ describe "generate workbook" do
246
+
247
+ context "with standard" do
248
+
249
+ before do
250
+ @excel1 = Excel.create
251
+ end
252
+
253
+ it "should generate a workbook" do
254
+ excel = Excel.create
255
+ workbook = excel.generate_workbook(@simple_file)
256
+ p "workbook: #{workbook}"
257
+ workbook.should be_a WIN32OLE
258
+ workbook.Name.should == File.basename(@simple_file)
259
+ workbook.FullName.should == RobustExcelOle::absolute_path(@simple_file)
260
+ workbook.Saved.should be_true
261
+ workbook.ReadOnly.should be_false
262
+ workbook.Sheets.Count == 1
263
+ workbooks = excel.Workbooks
264
+ workbooks.Count.should == 1
265
+ end
266
+ end
267
+ end
228
268
  end
229
269
 
230
270
  describe "RobustExcelOle" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: robust_excel_ole
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 1
10
- version: 0.3.1
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - traths
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2015-05-09 00:00:00 +02:00
18
+ date: 2015-06-07 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -89,14 +89,14 @@ files:
89
89
  - spec/cell_spec.rb
90
90
  - spec/cygwin_spec.rb
91
91
  - spec/data/book_with_blank.xls
92
- - spec/data/different_simple.xls
92
+ - spec/data/different_workbook.xls
93
93
  - spec/data/merge_cells.xls
94
94
  - spec/data/more_data/simple.xls
95
- - spec/data/more_simple.xls
95
+ - spec/data/more_workbook.xls
96
96
  - spec/data/protected_sheet.xls
97
- - spec/data/simple.xls
98
- - spec/data/simple.xlsm
99
- - spec/data/simple.xlsx
97
+ - spec/data/workbook.xls
98
+ - spec/data/workbook.xlsm
99
+ - spec/data/workbook.xlsx
100
100
  - spec/excel_spec.rb
101
101
  - spec/helpers/create_temporary_dir.rb
102
102
  - spec/helpers/key_sender.rb