robust_excel_ole 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module RobustExcelOle
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
data/spec/book_spec.rb CHANGED
@@ -41,15 +41,6 @@ describe Book do
41
41
  @book.should be_a Book
42
42
  @book.close
43
43
  end
44
-
45
- it "create a new file" do
46
- File.delete @simple_save_file rescue nil
47
- Book.create(@simple_save_file)
48
- book = Book.open(@simple_save_file, :if_absent => :raise)
49
- book.should be_a Book
50
- book.close
51
- File.exist?(@simple_save_file).should be_true
52
- end
53
44
  end
54
45
  end
55
46
 
@@ -468,7 +459,7 @@ describe Book do
468
459
  @key_sender.puts "{right}{enter}"
469
460
  expect{
470
461
  Book.open(@simple_file, :if_unsaved => :alert)
471
- }.to raise_error(ExcelUserCanceled, "open: canceled by user")
462
+ }.to raise_error(ExcelErrorOpen, "open: user canceled or open error")
472
463
  @book.should be_alive
473
464
  end
474
465
  end
@@ -808,7 +799,7 @@ describe Book do
808
799
  end
809
800
 
810
801
  it "should create and use a hidden Excel instance" do
811
- book2 = Book.open(@simple_file, :force_excel => @book.book_store.ensure_hidden_excel)
802
+ book2 = Book.open(@simple_file, :force_excel => @book.book_store.hidden_excel)
812
803
  book2.excel.should_not == @book.excel
813
804
  book2.excel.Visible.should be_false
814
805
  book2.excel.DisplayAlerts.should be_false
@@ -856,6 +847,17 @@ describe Book do
856
847
  book.excel.should_not == new_excel
857
848
  end
858
849
  end
850
+
851
+ it "should open unobtrusively in a given Excel" do
852
+ excel = Excel.new(:reuse => false)
853
+ new_excel = Excel.new(:reuse => false)
854
+ Book.unobtrusively(@simple_file, :if_closed => new_excel) do |book|
855
+ book.should be_a Book
856
+ book.should be_alive
857
+ book.excel.should_not == excel
858
+ end
859
+ end
860
+
859
861
  end
860
862
 
861
863
  context "with an open book" do
@@ -1025,6 +1027,41 @@ describe Book do
1025
1027
  sheet = new_book[0]
1026
1028
  sheet[0,0].value.should_not == old_cell_value
1027
1029
  end
1030
+
1031
+ it "should use a given Excel" do
1032
+ @book.close
1033
+ excel = Excel.new(:reuse => false)
1034
+ new_excel = Excel.new(:reuse => false)
1035
+ Book.unobtrusively(@simple_file, :if_closed => new_excel) do |book|
1036
+ book.should be_a Book
1037
+ book.excel.should_not == @book.excel
1038
+ book.excel.should == new_excel
1039
+ end
1040
+ end
1041
+
1042
+ it "should use not the given excel if the Excels are closed" do
1043
+ excel = Excel.new(:reuse => false)
1044
+ sheet = @book[0]
1045
+ old_cell_value = sheet[0,0].value
1046
+ old_excel = @book.excel
1047
+ @book.close
1048
+ @book.should_not be_alive
1049
+ Excel.close_all
1050
+ Book.unobtrusively(@simple_file, :if_closed => excel, :keep_open => true) do |book|
1051
+ book.should be_a Book
1052
+ book.excel.should_not == old_excel
1053
+ book.excel.should == @book.excel
1054
+ book.excel.should_not == excel
1055
+ sheet = book[0]
1056
+ cell = sheet[0,0]
1057
+ sheet[0,0] = cell.value == "simple" ? "complex" : "simple"
1058
+ book.Saved.should be_false
1059
+ end
1060
+ @book.should be_alive
1061
+ new_book = Book.open(@simple_file)
1062
+ sheet = new_book[0]
1063
+ sheet[0,0].value.should_not == old_cell_value
1064
+ end
1028
1065
  end
1029
1066
 
1030
1067
 
@@ -15,7 +15,7 @@ $VERBOSE = nil
15
15
  include RobustExcelOle
16
16
 
17
17
  module RobustExcelOle
18
- class MockBookstore
18
+ class MockBookstore # :nodoc: #
19
19
  def fetch(filename, options = { })
20
20
  nil
21
21
  end
@@ -387,6 +387,10 @@ describe BookStore do
387
387
  book_new = Book.open(@different_file)
388
388
  @bookstore.store(book_new)
389
389
  @book = nil
390
+ @book = "Bla"
391
+ @book = Book.open(@simple_file)
392
+ @bookstore.store(@book)
393
+ @book = nil
390
394
  GC.start
391
395
  @bookstore.fetch(@simple_file).should == nil
392
396
  @bookstore.fetch(@different_file).should == book_new
@@ -407,30 +411,27 @@ describe BookStore do
407
411
  end
408
412
 
409
413
  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 = @bookstore.hidden_excel
414
415
  h_excel1.should_not == @book.excel
415
416
  h_excel1.Visible.should be_false
416
417
  h_excel1.DisplayAlerts.should be_false
417
- book1 = Book.open(@simple_file, :force_excel => @bookstore.ensure_hidden_excel)
418
+ book1 = Book.open(@simple_file, :force_excel => @bookstore.hidden_excel)
418
419
  book1.excel.should === h_excel1
419
420
  book1.excel.should_not === @book.excel
420
421
  Excel.close_all
421
- h_excel2 = @bookstore.ensure_hidden_excel
422
+ h_excel2 = @bookstore.hidden_excel
422
423
  h_excel2.should_not == @book.excel
423
424
  h_excel2.should_not == book1.excel
424
425
  h_excel2.Visible.should be_false
425
426
  h_excel2.DisplayAlerts.should be_false
426
- book2 = Book.open(@simple_file, :force_excel => @bookstore.ensure_hidden_excel)
427
+ book2 = Book.open(@simple_file, :force_excel => @bookstore.hidden_excel)
427
428
  book2.excel.should === h_excel2
428
429
  book2.excel.should_not === @book.excel
429
430
  book2.excel.should_not === book1.excel
430
431
  end
431
432
 
432
433
  it "should exclude hidden excel" do
433
- book1 = Book.open(@simple_file, :force_excel => @bookstore.ensure_hidden_excel)
434
+ book1 = Book.open(@simple_file, :force_excel => @bookstore.hidden_excel)
434
435
  @bookstore.store(book1)
435
436
  book1.close
436
437
  book2 = @bookstore.fetch(@simple_file)
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: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 2
10
- version: 0.3.2
9
+ - 3
10
+ version: 0.3.3
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-06-07 00:00:00 +02:00
18
+ date: 2015-06-10 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency