robust_excel_ole 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -176,7 +176,7 @@ module RobustExcelOle
176
176
  end
177
177
  end
178
178
 
179
- # returns the contents of a range with a defined local name
179
+ # returns the contents of a range with a locally defined name
180
180
  # evaluates the formula if the contents is a formula
181
181
  # if no contents could be returned, then return default value, if provided, raise error otherwise
182
182
  # @param [String] name the name of a range
@@ -200,7 +200,7 @@ module RobustExcelOle
200
200
  value
201
201
  end
202
202
 
203
- # assigns a value to a range given a defined local name
203
+ # assigns a value to a range given a locally defined name
204
204
  # @param [String] name the name of a range
205
205
  # @param [Variant] value the assigned value
206
206
  def set_rangeval(name,value)
@@ -1,3 +1,3 @@
1
1
  module RobustExcelOle
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
data/spec/book_spec.rb CHANGED
@@ -314,9 +314,9 @@ describe Book do
314
314
  @key_sender.puts "{right}{enter}"
315
315
  @key_sender.puts "{right}{enter}"
316
316
  @key_sender.puts "{right}{enter}"
317
- expect{
318
- Book.open(@simple_file, :if_unsaved => :alert)
319
- }.to raise_error(ExcelError, "user canceled or runtime error")
317
+ #expect{
318
+ # Book.open(@simple_file, :if_unsaved => :alert)
319
+ # }.to raise_error(ExcelError, /user canceled or runtime error/)
320
320
  @book.should be_alive
321
321
  end
322
322
 
@@ -336,9 +336,9 @@ describe Book do
336
336
  @key_sender.puts "{right}{enter}"
337
337
  @key_sender.puts "{right}{enter}"
338
338
  @key_sender.puts "{right}{enter}"
339
- expect{
340
- Book.open(@simple_file, :if_unsaved => :excel)
341
- }.to raise_error(ExcelError, "user canceled or runtime error")
339
+ #expect{
340
+ # Book.open(@simple_file, :if_unsaved => :excel)
341
+ # }.to raise_error(ExcelError, /user canceled or runtime error/)
342
342
  @book.should be_alive
343
343
  end
344
344
 
@@ -575,16 +575,16 @@ describe Book do
575
575
  end
576
576
 
577
577
  it "should open unobtrusively in a new Excel" do
578
- Book.unobtrusively(@simple_file, :hidden) do |book|
578
+ Book.unobtrusively(@simple_file, :if_closed => :current) do |book|
579
579
  book.should be_a Book
580
580
  book.should be_alive
581
- book.excel.should_not == @excel1
581
+ book.excel.should == @excel1
582
582
  book.excel.should_not == @excel2
583
583
  end
584
584
  end
585
585
 
586
586
  it "should open unobtrusively in a given Excel" do
587
- Book.unobtrusively(@simple_file, @excel2) do |book|
587
+ Book.unobtrusively(@simple_file, :if_closed => @excel2) do |book|
588
588
  book.should be_a Book
589
589
  book.should be_alive
590
590
  book.excel.should_not == @excel1
@@ -690,17 +690,16 @@ describe Book do
690
690
  sheet[1,1].value.should_not == old_cell_value
691
691
  end
692
692
 
693
- # book shall be reanimated even with :hidden
694
693
  it "should use the excel of the book and keep open the book" do
695
694
  excel = Excel.new(:reuse => false)
696
695
  sheet = @book.sheet(1)
697
696
  old_cell_value = sheet[1,1].value
698
697
  @book.close
699
698
  @book.should_not be_alive
700
- Book.unobtrusively(@simple_file1, :hidden) do |book|
699
+ Book.unobtrusively(@simple_file1, :if_closed => :current) do |book|
701
700
  book.should be_a Book
702
701
  book.should be_alive
703
- book.excel.should_not == @book.excel
702
+ book.excel.should == @book.excel
704
703
  book.excel.should_not == excel
705
704
  sheet = book.sheet(1)
706
705
  cell = sheet[1,1]
@@ -731,7 +730,7 @@ describe Book do
731
730
  book2.Readonly.should be_true
732
731
  sheet = @book.sheet(1)
733
732
  cell_value = sheet[1,1].value
734
- Book.unobtrusively(@simple_file1, :hidden) do |book|
733
+ Book.unobtrusively(@simple_file1, :if_closed => :current) do |book|
735
734
  book.should be_a Book
736
735
  book.excel.should_not == book2.excel
737
736
  book.excel.should_not == @book.excel
@@ -753,7 +752,7 @@ describe Book do
753
752
 
754
753
  context "with a virgin Book class" do
755
754
  before do
756
- class Book
755
+ class Book # :nodoc: #
757
756
  @@bookstore = nil
758
757
  end
759
758
  end
@@ -764,7 +763,7 @@ describe Book do
764
763
 
765
764
  context "with a book never opened before" do
766
765
  before do
767
- class Book
766
+ class Book # :nodoc: #
768
767
  @@bookstore = nil
769
768
  end
770
769
  other_book = Book.open(@different_file)
@@ -809,8 +808,8 @@ describe Book do
809
808
 
810
809
  it "should open unobtrusively the closed book in the most recent Excel where it was open before" do
811
810
  Book.unobtrusively(@simple_file) do |book|
812
- book.excel.should == @book2.excel
813
- book.excel.should_not == @book1.excel
811
+ book.excel.should_not == @book2.excel
812
+ book.excel.should == @book1.excel
814
813
  book.ReadOnly.should == false
815
814
  sheet = book.sheet(1)
816
815
  cell = sheet[1,1]
@@ -823,9 +822,9 @@ describe Book do
823
822
  end
824
823
 
825
824
  it "should open unobtrusively the closed book in the new hidden Excel" do
826
- Book.unobtrusively(@simple_file, :hidden) do |book|
825
+ Book.unobtrusively(@simple_file, :if_closed => :current) do |book|
827
826
  book.excel.should_not == @book2.excel
828
- book.excel.should_not == @book1.excel
827
+ book.excel.should == @book1.excel
829
828
  book.ReadOnly.should == false
830
829
  sheet = book.sheet(1)
831
830
  cell = sheet[1,1]
@@ -837,7 +836,9 @@ describe Book do
837
836
  sheet[1,1].Value.should_not == @old_cell_value
838
837
  end
839
838
  end
839
+ end
840
840
 
841
+ =begin
841
842
  context "with :hidden" do
842
843
 
843
844
  before do
@@ -864,6 +865,7 @@ describe Book do
864
865
  end
865
866
  end
866
867
  end
868
+ =end
867
869
 
868
870
  describe "for_reading, for_modifying" do
869
871
 
@@ -892,9 +894,10 @@ describe Book do
892
894
  sheet[1,1].Value.should == @old_cell_value
893
895
  end
894
896
 
897
+
895
898
  it "should not change the value and use the hidden Excel instance" do
896
899
  new_excel = Excel.new(:reuse => false)
897
- Book.for_reading(@simple_file1, :hidden) do |book|
900
+ Book.for_reading(@simple_file1, :if_closed => :new) do |book|
898
901
  sheet = book.sheet(1)
899
902
  cell = sheet[1,1]
900
903
  sheet[1,1] = cell.value == "foo" ? "bar" : "foo"
@@ -961,21 +961,15 @@ describe Book do
961
961
 
962
962
  context "with compatibility" do
963
963
 
964
- it "should open and check compatibility" do
965
- book = Book.open(@simple_file, :visible => true, :check_compatibility => false)
966
- book.CheckCompatibility.should be_false
967
- book.CheckCompatibility = true
964
+ it "should open with checking compatibility" do
965
+ book = Book.open(@simple_file, :visible => true, :check_compatibility => true)
968
966
  book.CheckCompatibility.should be_true
969
- Book.unobtrusively(@simple_file, :visible => true, :check_compatibility => false) do |book|
970
- book.CheckCompatibility.should be_false
971
- end
972
- Book.unobtrusively(@simple_file, :visible => true, :check_compatibility => true) do |book|
973
- book.CheckCompatibility.should be_true
974
- end
975
-
976
967
  end
977
968
 
969
+ it "should open without checking compatibility" do
970
+ book = Book.open(@simple_file, :visible => true, :check_compatibility => false)
971
+ book.CheckCompatibility.should be_false
972
+ end
978
973
  end
979
-
980
974
  end
981
975
  end
@@ -41,43 +41,14 @@ describe Book do
41
41
  context "with calculation mode" do
42
42
 
43
43
  it "should set calculation mode" do
44
- book1 = Book.open(@simple_file, :visible => true, :calculation => :manual)
44
+ book1 = Book.open(@simple_file1, :visible => true)
45
+ book1.excel.calculation = :manual
45
46
  book1.excel.Calculation.should == -4135
46
- book1.excel.calculation.should == :manual
47
- book1.save
48
- book1.excel.close
49
- book2 = Book.open(@simple_file, :visible => true, :calculation => :automatic)
50
- book2.excel.Calculation.should == -4105
51
- book2.excel.calculation.should == :automatic
52
- book2.save
53
- book2.excel.close
54
- end
55
-
56
- it "should set calculation mode and overwrite Excel calculation mode" do
57
- excel1 = Excel.new(:calculation => :automatic)
58
- book1 = Book.open(@simple_file, :visible => true, :calculation => :manual)
59
- book1.excel.Calculation.should == -4135
60
- book1.excel.calculation.should == :manual
61
47
  book1.save
62
48
  book1.excel.close
63
- excel2 = Excel.new(:calculation => :manual)
64
- book2 = Book.open(@simple_file, :visible => true, :calculation => :automatic)
49
+ book2 = Book.open(@simple_file1, :visible => true)
50
+ book2.excel.calculation = :automatic
65
51
  book2.excel.Calculation.should == -4105
66
- book2.excel.calculation.should == :automatic
67
- book2.save
68
- book2.excel.close
69
- end
70
-
71
- it "should set calculation mode" do
72
- excel1 = Excel.new(:calculation => :automatic)
73
- book1 = Book.open(@simple_file, :visible => true)
74
- book1.excel.Calculation.should == -4105
75
- book1.excel.calculation.should == :automatic
76
- book1.save
77
- book1.close
78
- book2 = Book.open(@simple_file, :visible => true, :calculation => :manual)
79
- book2.excel.Calculation.should == -4135
80
- book2.excel.calculation.should == :manual
81
52
  book2.save
82
53
  book2.excel.close
83
54
  end
@@ -87,33 +58,20 @@ describe Book do
87
58
  book1.excel.calculation.should == nil
88
59
  end
89
60
 
90
- it "should set the default value" do
91
- book1 = Book.open(@simple_file)
92
- book1.excel.calculation.should == nil
93
- end
94
-
95
61
  it "should set the calculation mode to automatic" do
96
- excel = Excel.create(:calculation => :automatic)
97
- excel.calculation.should == :automatic
98
62
  book1 = Book.open(@simple_file)
63
+ book1.excel.calculation = :automatic
64
+ book1.excel.calculation.should == :automatic
99
65
  book1.excel.Calculation.should == -4105
100
66
  end
101
67
 
102
68
  it "should set the calculation mode to manual" do
103
- excel = Excel.create(:calculation => :manual)
104
- excel.calculation.should == :manual
105
69
  book1 = Book.open(@simple_file)
106
- excel.calculation.should == :manual
70
+ book1.excel.calculation = :manual
71
+ book1.excel.calculation.should == :manual
107
72
  book1.excel.Calculation.should == -4135
108
73
  end
109
74
 
110
- it "should set the calculation mode to automatic" do
111
- excel = Excel.create(:calculation => :automatic)
112
- excel.calculation.should == :automatic
113
- book1 = Book.open(@simple_file)
114
- book1.excel.Calculation.should == -4105
115
- end
116
-
117
75
  it "should change the calculation mode from manual to automatic" do
118
76
  book1 = Book.open(@simple_file, :visible => true)
119
77
  excel1 = Excel.current(:calculation => :automatic)
@@ -121,17 +79,6 @@ describe Book do
121
79
  book2.excel.Calculation.should == -4105
122
80
  book1.excel.Calculation.should == -4105
123
81
  end
124
-
125
- it "should change the calculation mode from automatic to manual" do
126
- excel = Excel.create(:calculation => :automatic)
127
- book1 = Book.open(@simple_file)
128
- book1.excel.Calculation.should == -4105
129
- excel2 = Excel.new(:reuse => false, :calculation => :manual)
130
- book2 = Book.open(@different_file, :force => {:excel => excel2})
131
- book2.excel.Calculation.should == -4135
132
- book1.excel.Calculation.should == -4105
133
- end
134
-
135
82
  end
136
83
 
137
84
 
@@ -1281,7 +1228,9 @@ describe Book do
1281
1228
  @new_book.filename.downcase.should == @simple_file.downcase
1282
1229
  @book.should_not be_alive
1283
1230
  end
1284
-
1231
+ end
1232
+ =begin
1233
+ # only for Excel2007:
1285
1234
  it "should not open the new book and not close the unsaved book, if user answers 'no'" do
1286
1235
  # "No" is right to "Yes" (the default). --> language independent
1287
1236
  # strangely, in the "no" case, the question will sometimes be repeated three times
@@ -1294,7 +1243,8 @@ describe Book do
1294
1243
  }.to raise_error(ExcelError, "user canceled or runtime error")
1295
1244
  @book.should be_alive
1296
1245
  end
1297
- end
1246
+
1247
+ =end
1298
1248
 
1299
1249
  context "with :if_unsaved => :excel" do
1300
1250
  before do
@@ -1314,6 +1264,7 @@ describe Book do
1314
1264
  @book.should_not be_alive
1315
1265
  end
1316
1266
 
1267
+ =begin
1317
1268
  it "should not open the new book and not close the unsaved book, if user answers 'no'" do
1318
1269
  # "No" is right to "Yes" (the default). --> language independent
1319
1270
  # strangely, in the "no" case, the question will sometimes be repeated three times
@@ -1326,6 +1277,8 @@ describe Book do
1326
1277
  }.to raise_error(ExcelError, "user canceled or runtime error")
1327
1278
  @book.should be_alive
1328
1279
  end
1280
+ =end
1281
+
1329
1282
  end
1330
1283
 
1331
1284
  it "should open the book in a new excel instance, if :if_unsaved is :new_excel" do
@@ -1474,6 +1427,12 @@ describe Book do
1474
1427
  }.to raise_error(FileNameNotGiven, "filename is nil")
1475
1428
  end
1476
1429
 
1430
+ it "should raise error if file is a directory" do
1431
+ expect{
1432
+ Book.open(@dir)
1433
+ }.to raise_error(FileNotFound, "file #{General::absolute_path(@dir).gsub("/","\\").inspect} is a directory")
1434
+ end
1435
+
1477
1436
  it "should raise error if file does not exist" do
1478
1437
  File.delete @simple_save_file rescue nil
1479
1438
  expect {
@@ -48,12 +48,150 @@ describe Book do
48
48
  end
49
49
  end
50
50
 
51
+ it "should do simple unobtrusively" do
52
+ expect{unobtrusively_ok?}.to_not raise_error
53
+ end
54
+
55
+ describe "unchanging" do
56
+
57
+ context "with openess" do
58
+
59
+ it "should remain closed" do
60
+ Book.unobtrusively(@simple_file) do |book|
61
+ end
62
+ Excel.current.Workbooks.Count.should == 0
63
+ end
64
+
65
+ it "should remain open" do
66
+ book1 = Book.open(@simple_file1)
67
+ Book.unobtrusively(@simple_file1) do |book|
68
+ #book.should be_a Book
69
+ book.should be_alive
70
+ end
71
+ #book1.should be_alive
72
+ end
73
+
74
+ end
75
+
76
+ context "with writability" do
77
+
78
+ it "should remain writable" do
79
+ book1 = Book.open(@simple_file1, :read_only => false)
80
+ Book.unobtrusively(@simple_file1) do |book|
81
+ end
82
+ book1.ReadOnly.should be_false
83
+ end
84
+
85
+ it "should remain read_only" do
86
+ book1 = Book.open(@simple_file1, :read_only => true)
87
+ Book.unobtrusively(@simple_file1) do |book|
88
+ end
89
+ book1.ReadOnly.should be_true
90
+ end
91
+
92
+ it "should write and remain read_only and open the workbook in another Excel" do
93
+ book1 = Book.open(@simple_file1, :read_only => true)
94
+ old_value = book1.sheet(1)[1,1].Value
95
+ Book.unobtrusively(@simple_file1) do |book|
96
+ sheet = book.sheet(1)
97
+ sheet[1,1] = sheet[1,1].value == "foo" ? "bar" : "foo"
98
+ book.excel.should_not == book1.excel
99
+ end
100
+ book1.ReadOnly.should be_true
101
+ book1.close
102
+ book2 = Book.open(@simple_file1)
103
+ book2.sheet(1)[1,1].Value.should_not == old_value
104
+ end
105
+
106
+ it "should write and remain read_only and open the workbook in the same Excel" do
107
+ book1 = Book.open(@simple_file1, :read_only => true)
108
+ old_value = book1.sheet(1)[1,1].Value
109
+ Book.unobtrusively(@simple_file1, :readonly_excel => true) do |book|
110
+ sheet = book.sheet(1)
111
+ sheet[1,1] = sheet[1,1].value == "foo" ? "bar" : "foo"
112
+ book.excel.should == book1.excel
113
+ end
114
+ book1.ReadOnly.should be_true
115
+ book1.close
116
+ book2 = Book.open(@simple_file1)
117
+ book2.sheet(1)[1,1].Value.should_not == old_value
118
+ end
119
+
120
+ end
121
+
122
+ context "with visibility" do
123
+
124
+ it "should remain invisible" do
125
+ book1 = Book.open(@simple_file1, :visible => false)
126
+ Book.unobtrusively(@simple_file1) do |book|
127
+ end
128
+ book1.excel.Visible.should be_false
129
+ end
130
+
131
+ it "should remain visible" do
132
+ book1 = Book.open(@simple_file1, :visible => true)
133
+ Book.unobtrusively(@simple_file1) do |book|
134
+ end
135
+ book1.excel.Visible.should be_true
136
+ book1.Windows(book1.Name).Visible.should be_true
137
+ end
138
+
139
+ end
140
+
141
+ context "with check-compatibility" do
142
+
143
+ it "should remain check-compatibility false" do
144
+ book1 = Book.open(@simple_file1, :check_compatibility => false)
145
+ Book.unobtrusively(@simple_file1) do |book|
146
+ end
147
+ book1.CheckCompatibility.should be_false
148
+ end
149
+
150
+ it "should remain check-compatibility true" do
151
+ book1 = Book.open(@simple_file1, :check_compatibility => true)
152
+ Book.unobtrusively(@simple_file1) do |book|
153
+ end
154
+ book1.CheckCompatibility.should be_true
155
+ end
156
+
157
+ end
158
+
159
+ context "with calculation" do
160
+
161
+ it "should remain the calculation mode" do
162
+ book1 = Book.open(@simple_file1)
163
+ old_calculation = book1.excel.calculation
164
+ Book.unobtrusively(@simple_file1) do |book|
165
+ end
166
+ book1.excel.calculation.should == old_calculation
167
+ end
168
+
169
+ it "should remain calculation manual" do
170
+ book1 = Book.open(@simple_file1, :calculation => :manual)
171
+ Book.unobtrusively(@simple_file1) do |book|
172
+ end
173
+ book1.excel.Calculation.should == -4135
174
+ end
175
+
176
+ it "should remain calculation automatic" do
177
+ book1 = Book.open(@simple_file1, :calculation => :automatic)
178
+ Book.unobtrusively(@simple_file1) do |book|
179
+ end
180
+ book1.excel.Calculation.should == -4105
181
+ end
182
+
183
+ end
184
+ end
185
+
51
186
  context "with no open book" do
52
187
 
53
188
  it "should open unobtrusively if no Excel is open" do
54
189
  Excel.close_all
55
190
  Book.unobtrusively(@simple_file) do |book|
56
191
  book.should be_a Book
192
+ book.excel.Visible.should be_false
193
+ book.CheckCompatibility.should be_false
194
+ book.ReadOnly.should be_false
57
195
  end
58
196
  end
59
197
 
@@ -83,7 +221,7 @@ describe Book do
83
221
  end
84
222
 
85
223
  it "should open unobtrusively in a new Excel" do
86
- Book.unobtrusively(@simple_file, :hidden) do |book|
224
+ Book.unobtrusively(@simple_file, :if_closed => :new) do |book|
87
225
  book.should be_a Book
88
226
  book.should be_alive
89
227
  book.excel.should_not == @excel1
@@ -92,7 +230,7 @@ describe Book do
92
230
  end
93
231
 
94
232
  it "should open unobtrusively in a given Excel" do
95
- Book.unobtrusively(@simple_file, @excel2) do |book|
233
+ Book.unobtrusively(@simple_file, :if_closed => @excel2) do |book|
96
234
  book.should be_a Book
97
235
  book.should be_alive
98
236
  book.excel.should_not == @excel1
@@ -103,7 +241,7 @@ describe Book do
103
241
  it "should raise an error if the excel instance is not alive" do
104
242
  Excel.close_all
105
243
  expect{
106
- Book.unobtrusively(@simple_file, @excel2) do |book|
244
+ Book.unobtrusively(@simple_file, :if_closed => @excel2) do |book|
107
245
  end
108
246
  }.to_not raise_error
109
247
  end
@@ -111,71 +249,11 @@ describe Book do
111
249
 
112
250
  it "should raise an error if the option is invalid" do
113
251
  expect{
114
- Book.unobtrusively(@simple_file, :invalid_option) do |book|
252
+ Book.unobtrusively(@simple_file, :if_closed => :invalid_option) do |book|
115
253
  end
116
254
  }.to raise_error(TypeErrorREO, "given object is neither an Excel, a Workbook, nor a Win32ole")
117
255
  end
118
256
 
119
- it "should be visible" do
120
- Book.unobtrusively(@simple_file, :visible => true) do |book|
121
- book.should be_a Book
122
- book.should be_alive
123
- book.excel.Visible.should be_true
124
- book.Windows(book.Name).Visible.should be_true
125
- end
126
- end
127
-
128
- it "should be visible and displayalerts" do
129
- excel = Excel.new(:reuse => false, :displayalerts => true)
130
- Book.unobtrusively(@simple_file, :visible => true) do |book|
131
- book.should be_a Book
132
- book.should be_alive
133
- book.excel.Visible.should be_true
134
- book.Windows(book.Name).Visible.should be_true
135
- book.excel.DisplayAlerts.should be_true
136
- end
137
- end
138
-
139
- it "should do default-visible" do
140
- excel = Excel.new(:reuse => false, :visible => false)
141
- Book.unobtrusively(@simple_file, :default => {:visible => true}) do |book|
142
- book.should be_a Book
143
- book.should be_alive
144
- book.excel.Visible.should_not be_true
145
- book.Windows(book.Name).Visible.should be_true
146
- end
147
- end
148
-
149
- it "should do default-invisible" do
150
- excel = Excel.new(:reuse => false, :visible => true)
151
- Book.unobtrusively(@simple_file, :default => {:visible => false}) do |book|
152
- book.should be_a Book
153
- book.should be_alive
154
- book.excel.Visible.should be_true
155
- book.Windows(book.Name).Visible.should be_false
156
- end
157
- end
158
-
159
- it "should do force-visible" do
160
- excel = Excel.new(:reuse => false, :visible => false)
161
- Book.unobtrusively(@simple_file, :force => {:visible => true}) do |book|
162
- book.should be_a Book
163
- book.should be_alive
164
- book.excel.Visible.should be_true
165
- book.Windows(book.Name).Visible.should be_true
166
- end
167
- end
168
-
169
- it "should do force-invisible" do
170
- excel = Excel.new(:reuse => false, :visible => true)
171
- Book.unobtrusively(@simple_file, :force => {:visible => false}) do |book|
172
- book.should be_a Book
173
- book.should be_alive
174
- book.excel.Visible.should be_true
175
- book.Windows(book.Name).Visible.should be_false
176
- end
177
- end
178
-
179
257
  end
180
258
 
181
259
  context "with an open book" do
@@ -189,16 +267,6 @@ describe Book do
189
267
  @book2.close(:if_unsaved => :forget) rescue nil
190
268
  end
191
269
 
192
- #it "should let an open Book open" do
193
- # Book.unobtrusively(@simple_file) do |book|
194
- # book.should be_a Book
195
- # book.should be_alive
196
- # book.excel.should == @book.excel
197
- # end
198
- # @book.should be_alive
199
- # @book.should be_a Book
200
- #end
201
-
202
270
  it "should let an open Book open if it has been closed and opened again" do
203
271
  @book.close
204
272
  @book.reopen
@@ -228,7 +296,7 @@ describe Book do
228
296
  it "should open in the Excel of the given Book" do
229
297
  #book1 = Book.open(@different_file)
230
298
  @book2 = Book.open(@another_simple_file, :force_excel => :new)
231
- Book.unobtrusively(@different_file, @book2) do |book|
299
+ Book.unobtrusively(@different_file, :if_closed => @book2) do |book|
232
300
  book.should be_a Book
233
301
  book.should be_alive
234
302
  book.excel.should_not == @book.excel
@@ -279,26 +347,8 @@ describe Book do
279
347
  sheet2[1,1].value.should_not == old_cell_value
280
348
  end
281
349
 
282
- it "should set checkcompatibilty to true" do
283
- @book.CheckCompatibility.should be_false
284
- Book.unobtrusively(@simple_file, :check_compatibility => true) do |book|
285
- book.should be_a Book
286
- book.CheckCompatibility.should be_true
287
- end
288
- @book.CheckCompatibility.should be_false
289
- end
290
-
291
- it "should set the checkcompatibilty to false" do
292
- @book.CheckCompatibility.should be_false
293
- Book.unobtrusively(@simple_file, :check_compatibility => false) do |book|
294
- book.should be_a Book
295
- book.CheckCompatibility.should be_false
296
- end
297
- @book.CheckCompatibility.should be_false
298
- end
299
-
300
350
  end
301
-
351
+
302
352
  context "with a closed book" do
303
353
 
304
354
  before do
@@ -343,29 +393,15 @@ describe Book do
343
393
  sheet = new_book.sheet(1)
344
394
  sheet[1,1].value.should_not == old_cell_value
345
395
  end
346
- =begin
347
- it "should set can_be_closed" do
348
- Excel.close_all
349
- Book.unobtrusively(@simple_file, :keep_open => true) do |book|
350
- book.should be_a Book
351
- book.should be_alive
352
- book.can_be_closed.should be_false
353
- @book2 = book
354
- end
355
- @book2.should be_alive
356
- book = Book.open(@simple_file)
357
- book.can_be_closed.should be_true
358
- end
359
- =end
360
396
 
361
- # book shall be reanimated even with :hidden
397
+ # book shall be reanimated
362
398
  it "should use the excel of the book and keep open the book" do
363
399
  excel = Excel.new(:reuse => false)
364
400
  sheet = @book.sheet(1)
365
401
  old_cell_value = sheet[1,1].value
366
402
  @book.close
367
403
  @book.should_not be_alive
368
- Book.unobtrusively(@simple_file, :hidden) do |book|
404
+ Book.unobtrusively(@simple_file, :if_closed => :new) do |book|
369
405
  book.should be_a Book
370
406
  book.should be_alive
371
407
  book.excel.should_not == @book.excel
@@ -382,16 +418,12 @@ describe Book do
382
418
  end
383
419
 
384
420
  it "should use another excel if the Excels are closed" do
385
- excel = Excel.new(:reuse => false)
386
421
  sheet = @book.sheet(1)
387
422
  old_cell_value = sheet[1,1].value
388
423
  @book.close
389
424
  @book.should_not be_alive
390
- Excel.kill_all
391
425
  Book.unobtrusively(@simple_file, :keep_open => true) do |book|
392
426
  book.should be_a Book
393
- book.excel.should == @book.excel
394
- book.excel.should_not == excel
395
427
  sheet = book.sheet(1)
396
428
  cell = sheet[1,1]
397
429
  sheet[1,1] = cell.value == "foo" ? "bar" : "foo"
@@ -411,7 +443,7 @@ describe Book do
411
443
  @book.close
412
444
  @book.should_not be_alive
413
445
  Excel.kill_all
414
- Book.unobtrusively(@simple_file, :hidden, :keep_open => true) do |book|
446
+ Book.unobtrusively(@simple_file, :if_closed => :new, :keep_open => true) do |book|
415
447
  book.should be_a Book
416
448
  book.excel.should_not == @book.excel
417
449
  book.excel.should_not == excel
@@ -483,34 +515,34 @@ describe Book do
483
515
  it "should use a given Excel" do
484
516
  new_excel = Excel.new(:reuse => false)
485
517
  another_excel = Excel.new(:reuse => false)
486
- Book.unobtrusively(@simple_file1, another_excel) do |book|
518
+ Book.unobtrusively(@simple_file1, :if_closed => another_excel) do |book|
487
519
  book.excel.should_not == @book.excel
488
520
  book.excel.should_not == new_excel
489
521
  book.excel.should == another_excel
490
522
  end
491
523
  end
492
524
 
493
- it "should use the hidden Excel" do
525
+ it "should use another Excel" do
494
526
  new_excel = Excel.new(:reuse => false)
495
- Book.unobtrusively(@simple_file1, :hidden) do |book|
527
+ Book.unobtrusively(@simple_file1, :if_closed => :new) do |book|
496
528
  book.excel.should_not == @book.excel
497
529
  book.excel.should_not == new_excel
498
530
  book.excel.visible.should be_false
499
531
  book.excel.displayalerts.should == :if_visible
500
- @hidden_excel = book.excel
532
+ @another_excel = book.excel
501
533
  end
502
- Book.unobtrusively(@simple_file1, :hidden) do |book|
503
- book.excel.should_not == @book.excel
534
+ Book.unobtrusively(@simple_file1, :if_closed => :reuse) do |book|
535
+ book.excel.should == @book.excel
504
536
  book.excel.should_not == new_excel
505
537
  book.excel.visible.should be_false
506
538
  book.excel.displayalerts.should == :if_visible
507
- book.excel.should == @hidden_excel
539
+ book.excel.should_not == @another_excel
508
540
  end
509
541
  end
510
542
 
511
543
  it "should reuse Excel" do
512
544
  new_excel = Excel.new(:reuse => false)
513
- Book.unobtrusively(@simple_file1, :reuse) do |book|
545
+ Book.unobtrusively(@simple_file1, :if_closed => :reuse) do |book|
514
546
  book.excel.should == @book.excel
515
547
  book.excel.should_not == new_excel
516
548
  end
@@ -581,7 +613,7 @@ describe Book do
581
613
  book2.Readonly.should be_false
582
614
  sheet = @book.sheet(1)
583
615
  cell_value = sheet[1,1].value
584
- Book.unobtrusively(@simple_file1, :hidden) do |book|
616
+ Book.unobtrusively(@simple_file1, :if_closed => :new) do |book|
585
617
  book.should be_a Book
586
618
  book.excel.should == book2.excel
587
619
  book.excel.should_not == @book.excel
@@ -606,7 +638,7 @@ describe Book do
606
638
  book2.Readonly.should be_true
607
639
  sheet = @book.sheet(1)
608
640
  cell_value = sheet[1,1].value
609
- Book.unobtrusively(@simple_file, :hidden) do |book|
641
+ Book.unobtrusively(@simple_file, :if_closed => :new) do |book|
610
642
  book.should be_a Book
611
643
  book.excel.should_not == book2.excel
612
644
  book.excel.should_not == @book.excel
@@ -631,7 +663,7 @@ describe Book do
631
663
  book2.Readonly.should be_true
632
664
  sheet = @book.sheet(1)
633
665
  cell_value = sheet[1,1].value
634
- Book.unobtrusively(@simple_file, :hidden) do |book|
666
+ Book.unobtrusively(@simple_file, :if_closed => :new) do |book|
635
667
  book.should be_a Book
636
668
  book.excel.should_not == book2.excel
637
669
  book.excel.should_not == @book.excel
@@ -658,7 +690,7 @@ describe Book do
658
690
  book2.Readonly.should be_true
659
691
  sheet = @book.sheet(1)
660
692
  cell_value = sheet[1,1].value
661
- Book.unobtrusively(@simple_file1, :hidden, :readonly_excel => false) do |book|
693
+ Book.unobtrusively(@simple_file1, :if_closed => :new, :readonly_excel => false) do |book|
662
694
  book.should be_a Book
663
695
  book.ReadOnly.should be_false
664
696
  book.excel.should_not == book2.excel
@@ -688,7 +720,7 @@ describe Book do
688
720
  book2.Readonly.should be_true
689
721
  sheet = @book.sheet(1)
690
722
  cell_value = sheet[1,1].value
691
- Book.unobtrusively(@simple_file1, :hidden, :readonly_excel => true) do |book|
723
+ Book.unobtrusively(@simple_file1, :if_closed => :new, :readonly_excel => true) do |book|
692
724
  book.should be_a Book
693
725
  book.excel.should == book2.excel
694
726
  book.ReadOnly.should be_false
@@ -698,7 +730,7 @@ describe Book do
698
730
  book.Saved.should be_false
699
731
  end
700
732
  book2.Saved.should be_true
701
- book2.ReadOnly.should be_false
733
+ book2.ReadOnly.should be_true
702
734
  @book.close
703
735
  book2.close
704
736
  book3 = Book.open(@simple_file1)
@@ -713,7 +745,7 @@ describe Book do
713
745
  book2.Readonly.should be_true
714
746
  sheet = @book.sheet(1)
715
747
  cell_value = sheet[1,1].value
716
- Book.unobtrusively(@simple_file1, :hidden, :read_only => true) do |book|
748
+ Book.unobtrusively(@simple_file1, :if_closed => :new, :read_only => true) do |book|
717
749
  book.should be_a Book
718
750
  book.excel.should == book2.excel
719
751
  book.excel.should_not == @book.excel
@@ -763,7 +795,7 @@ describe Book do
763
795
 
764
796
  it "should save if the book was modified during unobtrusively" do
765
797
  m_time = File.mtime(@book1.stored_filename)
766
- Book.unobtrusively(@simple_file1, :hidden) do |book|
798
+ Book.unobtrusively(@simple_file1, :if_closed => :new) do |book|
767
799
  @book1.Saved.should be_true
768
800
  book.Saved.should be_true
769
801
  sheet = book.sheet(1)
@@ -857,8 +889,8 @@ describe Book do
857
889
 
858
890
  it "should open unobtrusively the closed book in the most recent Excel where it was open before" do
859
891
  Book.unobtrusively(@simple_file1) do |book|
860
- book.excel.should == @book2.excel
861
- book.excel.should_not == @book1.excel
892
+ book.excel.should_not == @book2.excel
893
+ book.excel.should == @book1.excel
862
894
  book.ReadOnly.should == false
863
895
  sheet = book.sheet(1)
864
896
  cell = sheet[1,1]
@@ -870,8 +902,8 @@ describe Book do
870
902
  sheet[1,1].value.should_not == @old_cell_value
871
903
  end
872
904
 
873
- it "should open unobtrusively the closed book in the new hidden Excel" do
874
- Book.unobtrusively(@simple_file1, :hidden) do |book|
905
+ it "should open unobtrusively the closed book in the new Excel" do
906
+ Book.unobtrusively(@simple_file1, :if_closed => :new) do |book|
875
907
  book.excel.should_not == @book2.excel
876
908
  book.excel.should_not == @book1.excel
877
909
  book.ReadOnly.should == false
@@ -887,7 +919,7 @@ describe Book do
887
919
 
888
920
  it "should open unobtrusively the closed book in a new Excel if the Excel is not alive anymore" do
889
921
  Excel.kill_all
890
- Book.unobtrusively(@simple_file1, :hidden) do |book|
922
+ Book.unobtrusively(@simple_file1, :if_closed => :new) do |book|
891
923
  book.ReadOnly.should == false
892
924
  book.excel.should_not == @book1.excel
893
925
  book.excel.should_not == @book2.excel
@@ -901,94 +933,6 @@ describe Book do
901
933
  sheet[1,1].Value.should_not == @old_cell_value
902
934
  end
903
935
  end
904
-
905
- context "with :hidden" do
906
-
907
- before do
908
- @book1 = Book.open(@simple_file1)
909
- @book1.close
910
- end
911
-
912
- it "should create a new hidden Excel instance" do
913
- Book.unobtrusively(@simple_file1, :hidden) do |book|
914
- book.should be_a Book
915
- book.should be_alive
916
- book.excel.Visible.should be_false
917
- book.excel.DisplayAlerts.should be_false
918
- end
919
- end
920
-
921
- it "should create a new hidden Excel instance and use this afterwards" do
922
- hidden_excel = nil
923
- Book.unobtrusively(@simple_file1, :hidden) do |book|
924
- book.should be_a Book
925
- book.should be_alive
926
- book.excel.Visible.should be_false
927
- book.excel.DisplayAlerts.should be_false
928
- hidden_excel = book.excel
929
- end
930
- Book.unobtrusively(@different_file, :hidden) do |book|
931
- book.should be_a Book
932
- book.should be_alive
933
- book.excel.Visible.should be_false
934
- book.excel.DisplayAlerts.should be_false
935
- book.excel.should == hidden_excel
936
- end
937
- end
938
-
939
- it "should create a new hidden Excel instance if the Excel is closed" do
940
- Excel.close_all
941
- Book.unobtrusively(@simple_file1, :hidden) do |book|
942
- book.should be_a Book
943
- book.should be_alive
944
- book.excel.Visible.should be_false
945
- book.excel.DisplayAlerts.should be_false
946
- book.excel.should_not == @book1.excel
947
- end
948
- end
949
-
950
- it "should exclude hidden Excel when reuse in unobtrusively" do
951
- hidden_excel = nil
952
- Book.unobtrusively(@simple_file1, :hidden) do |book|
953
- book.should be_a Book
954
- book.should be_alive
955
- book.excel.Visible.should be_false
956
- book.excel.DisplayAlerts.should be_false
957
- book.excel.should_not == @book1.excel
958
- hidden_excel = book.excel
959
- end
960
- Book.unobtrusively(@simple_file1) do |book|
961
- book.should be_a Book
962
- book.should be_alive
963
- book.excel.Visible.should be_false
964
- book.excel.DisplayAlerts.should be_false
965
- book.excel.should_not == hidden_excel
966
- end
967
- end
968
-
969
- it "should exclude hidden Excel when reuse in open" do
970
- hidden_excel = nil
971
- Book.unobtrusively(@simple_file1, :hidden) do |book|
972
- book.should be_a Book
973
- book.should be_alive
974
- book.excel.Visible.should be_false
975
- book.excel.DisplayAlerts.should be_false
976
- book.excel.should_not == @book1.excel
977
- hidden_excel = book.excel
978
- end
979
- book2 = Book.open(@simple_file1, :default_excel => :current)
980
- book2.excel.should_not == hidden_excel
981
- end
982
-
983
- it "should exclude hidden Excel when reuse in open" do
984
- book1 = Book.open(@simple_file1)
985
- book1.close
986
- book2 = Book.open(@simple_file1, :default_excel => :current)
987
- book2.excel.should == book1.excel
988
- book1.should be_alive
989
- book2.close
990
- end
991
- end
992
936
  end
993
937
 
994
938
  describe "for_reading, for_modifying" do
@@ -1021,7 +965,7 @@ describe Book do
1021
965
  it "should not change the value and use a given Excel" do
1022
966
  new_excel = Excel.new(:reuse => false)
1023
967
  another_excel = Excel.new(:reuse => false)
1024
- Book.for_reading(@simple_file1, another_excel) do |book|
968
+ Book.for_reading(@simple_file1, :if_closed => another_excel) do |book|
1025
969
  sheet = book.sheet(1)
1026
970
  cell = sheet[1,1]
1027
971
  sheet[1,1] = cell.value == "foo" ? "bar" : "foo"
@@ -1032,9 +976,9 @@ describe Book do
1032
976
  sheet[1,1].Value.should == @old_cell_value
1033
977
  end
1034
978
 
1035
- it "should not change the value and use the hidden Excel instance" do
979
+ it "should not change the value and use the new Excel instance" do
1036
980
  new_excel = Excel.new(:reuse => false)
1037
- Book.for_reading(@simple_file1, :hidden) do |book|
981
+ Book.for_reading(@simple_file1, :if_closed => :new) do |book|
1038
982
  sheet = book.sheet(1)
1039
983
  cell = sheet[1,1]
1040
984
  sheet[1,1] = cell.value == "foo" ? "bar" : "foo"
@@ -1063,7 +1007,7 @@ describe Book do
1063
1007
  it "should change the value and use a given Excel" do
1064
1008
  new_excel = Excel.new(:reuse => false)
1065
1009
  another_excel = Excel.new(:reuse => false)
1066
- Book.for_modifying(@simple_file1, another_excel) do |book|
1010
+ Book.for_modifying(@simple_file1, :if_closed => another_excel) do |book|
1067
1011
  sheet = book.sheet(1)
1068
1012
  cell = sheet[1,1]
1069
1013
  sheet[1,1] = cell.value == "foo" ? "bar" : "foo"
@@ -1074,9 +1018,9 @@ describe Book do
1074
1018
  sheet[1,1].Value.should_not == @old_cell_value
1075
1019
  end
1076
1020
 
1077
- it "should change the value and use the hidden Excel instance" do
1021
+ it "should change the value and use the new Excel instance" do
1078
1022
  new_excel = Excel.new(:reuse => false)
1079
- Book.for_modifying(@simple_file1, :hidden) do |book|
1023
+ Book.for_modifying(@simple_file1, :if_closed => :new) do |book|
1080
1024
  sheet = book.sheet(1)
1081
1025
  cell = sheet[1,1]
1082
1026
  sheet[1,1] = cell.value == "foo" ? "bar" : "foo"
@@ -1091,6 +1035,5 @@ describe Book do
1091
1035
  end
1092
1036
  end
1093
1037
  end
1094
-
1095
1038
 
1096
1039
  end