robust_excel_ole 1.14 → 1.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -41,25 +41,25 @@ module RobustExcelOle
41
41
  @book1 = Workbook.open(@simple_file)
42
42
  end
43
43
 
44
- it "should promote an Excel" do
44
+ it "should type-lift an Excel" do
45
45
  excel = @book1.excel.ole_excel.to_reo
46
46
  excel.class.should == RobustExcelOle::Excel
47
47
  excel.should be_alive
48
48
  end
49
49
 
50
- it "should promote a workbook" do
50
+ it "should type-lift a workbook" do
51
51
  workbook = @book1.ole_workbook.to_reo
52
52
  workbook.should be_a Workbook
53
53
  workbook.should be_alive
54
54
  end
55
55
 
56
- it "should promote a worksheet" do
56
+ it "should type-lift a worksheet" do
57
57
  worksheet = @book1.sheet(1).ole_worksheet.to_reo
58
58
  worksheet.should be_kind_of Worksheet
59
59
  worksheet.name.should == "Sheet1"
60
60
  end
61
61
 
62
- it "should promote a range" do
62
+ it "should type-lift a range" do
63
63
  range = @book1.sheet(1).range([1,1]).ole_range.to_reo
64
64
  range.should be_kind_of Range
65
65
  range.Value.should == "foo"
@@ -103,22 +103,26 @@ module RobustExcelOle
103
103
 
104
104
  describe "misc" do
105
105
 
106
- LOG_TO_STDOUT = true
107
- REOCommon::trace "foo"
106
+ it "should" do
108
107
 
109
- LOG_TO_STDOUT = false
110
- REOCommon::trace "foo"
108
+ LOG_TO_STDOUT = true
109
+ REOCommon::trace "foo"
111
110
 
112
- REO_LOG_DIR = ""
113
- REOCommon::trace "foo"
111
+ LOG_TO_STDOUT = false
112
+ REOCommon::trace "foo"
114
113
 
115
- REO_LOG_DIR = "C:"
116
- REOCommon::trace "foo"
114
+ REO_LOG_DIR = ""
115
+ REOCommon::trace "foo"
117
116
 
118
- REOCommon::tr1 "foo"
117
+ #REO_LOG_DIR = "C:"
118
+ #REOCommon::trace "foo"
119
119
 
120
- h = {:a => {:c => 4}, :b => 2}
121
- REOCommon::puts_hash(h)
120
+ REOCommon::tr1 "foo"
121
+
122
+ h = {:a => {:c => 4}, :b => 2}
123
+ REOCommon::puts_hash(h)
124
+
125
+ end
122
126
 
123
127
  end
124
128
  end
@@ -669,7 +669,7 @@ describe Workbook do
669
669
  end
670
670
  end
671
671
 
672
- describe "promoting" do
672
+ describe "type-lifting" do
673
673
 
674
674
  context "with standard" do
675
675
 
@@ -681,7 +681,7 @@ describe Workbook do
681
681
  @book.close
682
682
  end
683
683
 
684
- it "should promote a win32ole workbook object to a workbook object with an open workbook" do
684
+ it "should type-lift a win32ole workbook object to a workbook object with an open workbook" do
685
685
  workbook = @book.ole_workbook
686
686
  book1 = Workbook.new(workbook)
687
687
  book1.should be_a Workbook
@@ -1109,8 +1109,8 @@ describe Workbook do
1109
1109
  sheet[1,1] = cell.Value == "foo" ? "bar" : "foo"
1110
1110
  book.excel.should_not == @book.excel
1111
1111
  book.excel.should_not == new_excel
1112
- book.excel.visible.should be false
1113
- book.excel.displayalerts.should == :if_visible
1112
+ book.excel.properties[:visible].should be false
1113
+ book.excel.properties[:displayalerts].should == :if_visible
1114
1114
  end
1115
1115
  new_book = Workbook.open(@simple_file1, :visible => true)
1116
1116
  sheet = new_book.sheet(1)
@@ -251,7 +251,7 @@ describe Workbook do
251
251
  excel2 = book1.excel
252
252
  excel2.should == excel1
253
253
  excel2.Visible.should be false
254
- book2.Windows(book2.Name).Visible.should be false
254
+ book2.Windows(book2.Name).Visible.should be true
255
255
  end
256
256
 
257
257
  it "should keep the found Excel instance visible" do
@@ -264,7 +264,7 @@ describe Workbook do
264
264
  excel2 = book1.excel
265
265
  excel2.should == excel1
266
266
  excel2.Visible.should be true
267
- book2.Windows(book2.Name).Visible.should be false
267
+ book2.Windows(book2.Name).Visible.should be true
268
268
  end
269
269
 
270
270
  it "should keep the found Excel instance visible with default visible true" do
@@ -292,17 +292,17 @@ describe Workbook do
292
292
  book2.Windows(book2.Name).Visible.should be true
293
293
  end
294
294
 
295
- it "should open the workbook visible if the workbook is new" do
295
+ it "should open the workbook not visible if the workbook is new" do
296
296
  book1 = Workbook.open(@simple_file1, :default => {:visible => true})
297
- book1.excel.Visible.should be true
297
+ book1.excel.Visible.should be false
298
298
  book1.Windows(book1.Name).Visible.should be true
299
- book1.visible.should be true
299
+ book1.visible.should be false
300
300
  end
301
301
 
302
302
  it "should open the workbook invisible if the workbook is new" do
303
303
  book1 = Workbook.open(@simple_file1, :default => {:visible => false})
304
304
  book1.excel.Visible.should be false
305
- book1.Windows(book1.Name).Visible.should be false
305
+ book1.Windows(book1.Name).Visible.should be true
306
306
  book1.visible.should be false
307
307
  end
308
308
 
@@ -324,13 +324,13 @@ describe Workbook do
324
324
  book2 = Workbook.open(@simple_file1, :default => {:visible => true})
325
325
  excel2 = book2.excel
326
326
  book1.Windows(book1.Name).Visible.should be true
327
- excel2.Visible.should be true
328
- book2.visible.should be true
327
+ excel2.Visible.should be false
328
+ book2.visible.should be false
329
329
  end
330
330
 
331
331
  it "should open the workbook invisible if the old Excel is closed" do
332
332
  book1 = Workbook.open(@simple_file1, :default => {:visible => true})
333
- book1.visible.should be true
333
+ book1.visible.should be false
334
334
  excel1 = book1.excel
335
335
  excel1.Visible.should be true
336
336
  book1.Windows(book1.Name).Visible.should be true
@@ -344,7 +344,6 @@ describe Workbook do
344
344
  end
345
345
 
346
346
  end
347
-
348
347
  =end
349
348
 
350
349
  describe "force-visible" do
@@ -375,7 +374,7 @@ describe Workbook do
375
374
  excel1.visible = true
376
375
  book1 = Workbook.open(@simple_file)
377
376
  excel1.Visible.should be true
378
- excel1.visible.should be true
377
+ excel1.properties[:visible].should be true
379
378
  book1.visible.should be true
380
379
  end
381
380
 
@@ -587,30 +586,30 @@ describe Workbook do
587
586
  it "should set visible and displayalerts if displayalerts => :if_visible" do
588
587
  book1 = Workbook.open(@simple_file)
589
588
  book1.excel.Visible.should be false
590
- book1.excel.displayalerts.should == :if_visible
589
+ book1.excel.properties[:displayalerts].should == :if_visible
591
590
  book1.Windows(book1.Name).Visible.should be true
592
591
  book1.visible.should be false
593
592
  book2 = Workbook.open(@different_file)
594
593
  book2.excel.Visible.should be false
595
594
  book2.Windows(book2.Name).Visible.should be true
596
595
  book2.visible.should be false
597
- book2.excel.visible.should be false
598
- book2.excel.displayalerts.should == :if_visible
596
+ book2.excel.properties[:visible].should be false
597
+ book2.excel.properties[:displayalerts].should == :if_visible
599
598
  book2.excel.DisplayAlerts.should be false
600
599
  end
601
600
 
602
601
  it "should set visible and displayalerts if displayalerts => :if_visible" do
603
602
  book1 = Workbook.open(@simple_file)
604
603
  book1.excel.Visible.should be false
605
- book1.excel.displayalerts.should == :if_visible
604
+ book1.excel.properties[:displayalerts].should == :if_visible
606
605
  book1.Windows(book1.Name).Visible.should be true
607
606
  book1.visible.should be false
608
607
  book2 = Workbook.open(@different_file, :visible => true)
609
608
  book2.excel.Visible.should be true
610
609
  book2.Windows(book2.Name).Visible.should be true
611
610
  book2.visible.should be true
612
- book2.excel.visible.should be true
613
- book2.excel.displayalerts.should == :if_visible
611
+ book2.excel.properties[:visible].should be true
612
+ book2.excel.properties[:displayalerts].should == :if_visible
614
613
  book2.excel.DisplayAlerts.should be true
615
614
  end
616
615
  end
@@ -663,8 +662,8 @@ describe Workbook do
663
662
  it "should create and use a hidden Excel instance" do
664
663
  book2 = Workbook.open(@simple_file1, :force_excel => @book.bookstore.hidden_excel)
665
664
  book2.excel.should_not == @book.excel
666
- book2.excel.visible.should be false
667
- book2.excel.displayalerts.should == :if_visible
665
+ book2.excel.properties[:visible].should be false
666
+ book2.excel.properties[:displayalerts].should == :if_visible
668
667
  book2.close
669
668
  end
670
669
  end
@@ -510,7 +510,7 @@ describe Workbook do
510
510
  book2.excel.should_not == book.excel
511
511
  end
512
512
 
513
- it "should promote an open known workbook" do
513
+ it "should type-lift an open known workbook" do
514
514
  book = Workbook.open(@simple_file)
515
515
  ole_workbook = book.ole_workbook
516
516
  new_book = Workbook.new(ole_workbook)
@@ -520,7 +520,7 @@ describe Workbook do
520
520
  new_book.excel.should == book.excel
521
521
  end
522
522
 
523
- it "should promote an open known workbook and let it be visible" do
523
+ it "should type-lift an open known workbook and let it be visible" do
524
524
  book = Workbook.open(@simple_file, :visible => true)
525
525
  ole_workbook = book.ole_workbook
526
526
  new_book = Workbook.new(ole_workbook)
@@ -532,7 +532,7 @@ describe Workbook do
532
532
  new_book.Windows(new_book.ole_workbook.Name).Visible.should == true
533
533
  end
534
534
 
535
- it "should promote an open known workbook and let it be visible and readonly" do
535
+ it "should type-lift an open known workbook and let it be visible and readonly" do
536
536
  book = Workbook.open(@simple_file, :visible => true, :read_only => true)
537
537
  ole_workbook = book.ole_workbook
538
538
  new_book = Workbook.new(ole_workbook)
@@ -545,7 +545,7 @@ describe Workbook do
545
545
  new_book.ReadOnly.should == true
546
546
  end
547
547
 
548
- it "should promote an open known workbook and make it visible" do
548
+ it "should type-lift an open known workbook and make it visible" do
549
549
  book = Workbook.open(@simple_file)
550
550
  ole_workbook = book.ole_workbook
551
551
  new_book = Workbook.new(ole_workbook, :visible => true)
@@ -557,7 +557,7 @@ describe Workbook do
557
557
  new_book.Windows(new_book.ole_workbook.Name).Visible.should == true
558
558
  end
559
559
 
560
- it "should promote an open unknown workbook" do
560
+ it "should type-lift an open unknown workbook" do
561
561
  ole_excel = WIN32OLE.new('Excel.Application')
562
562
  ws = ole_excel.Workbooks
563
563
  abs_filename = General.absolute_path(@simple_file1)
@@ -567,7 +567,7 @@ describe Workbook do
567
567
  new_book.excel.Hwnd.should == ole_excel.Hwnd
568
568
  end
569
569
 
570
- it "should promote an open unknown workbook and make it visible" do
570
+ it "should type-lift an open unknown workbook and make it visible" do
571
571
  ole_excel = WIN32OLE.new('Excel.Application')
572
572
  ws = ole_excel.Workbooks
573
573
  abs_filename = General.absolute_path(@simple_file1)
@@ -579,7 +579,7 @@ describe Workbook do
579
579
  new_book.Windows(new_book.ole_workbook.Name).Visible.should == true
580
580
  end
581
581
 
582
- it "should promote an open unknown workbook and make it visible and readonly" do
582
+ it "should type-lift an open unknown workbook and make it visible and readonly" do
583
583
  ole_excel = WIN32OLE.new('Excel.Application')
584
584
  ws = ole_excel.Workbooks
585
585
  abs_filename = General.absolute_path(@simple_file1)
@@ -35,8 +35,239 @@ describe Workbook do
35
35
  rm_tmp(@dir)
36
36
  end
37
37
 
38
+ describe "Workbook#for_reading, #for_modifying" do
39
+
40
+ context "with standard" do
41
+
42
+ before do
43
+ @book = Workbook.open(@simple_file1)
44
+ @old_value = @book.sheet(1)[1,1].Value
45
+ end
46
+
47
+ after do
48
+ @book.close(:if_unsaved => :forget) if @book && @book.alive?
49
+ end
50
+
51
+ it "should not change the value" do
52
+ @book.for_reading do |book|
53
+ book.should be_a Workbook
54
+ book.should be_alive
55
+ book.Saved.should be true
56
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
57
+ book.Saved.should be false
58
+ end
59
+ @book.close(:if_unsaved => :forget)
60
+ new_book = Workbook.open(@simple_file1)
61
+ new_book.sheet(1)[1,1].Value.should == @old_value
62
+ end
63
+
64
+ it "should change the value" do
65
+ @book.for_modifying do |book|
66
+ book.should be_a Workbook
67
+ book.should be_alive
68
+ book.Saved.should be true
69
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
70
+ book.Saved.should be false
71
+ end
72
+ @book.close(:if_unsaved => :forget)
73
+ new_book = Workbook.open(@simple_file1)
74
+ new_book.sheet(1)[1,1].Value.should_not == @old_value
75
+ end
76
+
77
+ it "should not change the value and make visible" do
78
+ @book.for_reading(:visible => true) do |book|
79
+ book.should be_a Workbook
80
+ book.should be_alive
81
+ book.visible.should be true
82
+ book.Saved.should be true
83
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
84
+ book.Saved.should be false
85
+ end
86
+ @book.close(:if_unsaved => :forget)
87
+ new_book = Workbook.open(@simple_file1)
88
+ new_book.sheet(1)[1,1].Value.should == @old_value
89
+ end
90
+
91
+ it "should change the value and make visible" do
92
+ @book.for_modifying(:visible => true) do |book|
93
+ book.should be_a Workbook
94
+ book.should be_alive
95
+ book.visible.should be true
96
+ book.Saved.should be true
97
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
98
+ book.Saved.should be false
99
+ end
100
+ @book.close(:if_unsaved => :forget)
101
+ new_book = Workbook.open(@simple_file1)
102
+ new_book.sheet(1)[1,1].Value.should_not == @old_value
103
+ end
104
+
105
+ end
106
+
107
+ end
108
+
109
+ describe "Workbook#unobtrusively" do
110
+
111
+ context "with a writable saved workbook" do
112
+
113
+ before do
114
+ @book = Workbook.open(@simple_file1, :visible => true)
115
+ @old_value = @book.sheet(1)[1,1].Value
116
+ end
117
+
118
+ after do
119
+ @book.close(:if_unsaved => :forget) if @book && @book.alive?
120
+ end
121
+
122
+ it "should unobtrusively open, modify, and retain the status" do
123
+ @book.unobtrusively do |book|
124
+ book.saved.should be true
125
+ book.visible.should be true
126
+ book.writable.should be true
127
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
128
+ end
129
+ @book.saved.should be true
130
+ @book.visible.should be true
131
+ @book.writable.should be true
132
+ @book.sheet(1)[1,1].Value.should_not == @old_value
133
+ @book.close
134
+ new_book = Workbook.open(@simple_file1)
135
+ new_book.sheet(1)[1,1].Value.should_not == @old_value
136
+ end
137
+
138
+ it "should unobtrusively open, modify, and not save the changes" do
139
+ @book.unobtrusively(:writable => false) do |book|
140
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
141
+ end
142
+ @book.saved.should be true
143
+ @book.visible.should be true
144
+ @book.writable.should be true
145
+ @book.sheet(1)[1,1].Value.should_not == @old_value
146
+ @book.close
147
+ new_book = Workbook.open(@simple_file1)
148
+ new_book.sheet(1)[1,1].Value.should == @old_value
149
+ end
150
+
151
+ it "should unobtrusively open, modify, and save the changes" do
152
+ @book.unobtrusively(:writable => true) do |book|
153
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
154
+ end
155
+ @book.saved.should be true
156
+ @book.visible.should be true
157
+ @book.writable.should be true
158
+ @book.sheet(1)[1,1].Value.should_not == @old_value
159
+ @book.close
160
+ new_book = Workbook.open(@simple_file1)
161
+ new_book.sheet(1)[1,1].Value.should_not == @old_value
162
+ end
163
+
164
+ end
165
+
166
+ context "with an writable unsaved workbook" do
167
+
168
+ before do
169
+ @book = Workbook.open(@simple_file1, :visible => true)
170
+ @old_value = @book.sheet(1)[1,1].Value
171
+ sheet = @book.sheet(1)
172
+ sheet[1,1] = sheet[1,1].Value == "foo" ? "bar" : "foo"
173
+ end
174
+
175
+ after do
176
+ @book.close(:if_unsaved => :forget) if @book && @book.alive?
177
+ end
178
+
179
+ it "should unobtrusively open, modify, and retain the status" do
180
+ @book.unobtrusively do |book|
181
+ book.saved.should be false
182
+ book.visible.should be true
183
+ book.writable.should be true
184
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
185
+ end
186
+ @book.saved.should be false
187
+ @book.visible.should be true
188
+ @book.writable.should be true
189
+ @book.sheet(1)[1,1].Value.should == @old_value
190
+ @book.close(:if_unsaved => :forget)
191
+ @book = Workbook.open(@simple_file1)
192
+ @book.sheet(1)[1,1].Value.should == @old_value
193
+ end
194
+
195
+ it "should unobtrusively open, modify, and not save the changes" do
196
+ @book.unobtrusively(:writable => false) do |book|
197
+ book.sheet(1)[1,1] = "bla"
198
+ end
199
+ @book.saved.should be false
200
+ @book.visible.should be true
201
+ @book.writable.should be true
202
+ @book.sheet(1)[1,1].Value.should == "bla"
203
+ @book.close(:if_unsaved => :forget)
204
+ new_book = Workbook.open(@simple_file1)
205
+ new_book.sheet(1)[1,1].Value.should == @old_value
206
+ end
207
+
208
+ it "should unobtrusively open, modify, and save the changes" do
209
+ @book.unobtrusively(:writable => true) do |book|
210
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
211
+ end
212
+ @book.saved.should be false
213
+ @book.visible.should be true
214
+ @book.writable.should be true
215
+ @book.sheet(1)[1,1].Value.should == @old_value
216
+ @book.close(:if_unsaved => :forget)
217
+ new_book = Workbook.open(@simple_file1)
218
+ new_book.sheet(1)[1,1].Value.should == @old_value
219
+ end
220
+
221
+ end
222
+
223
+ context "with a closed workbook" do
224
+
225
+ before do
226
+ @book = Workbook.open(@simple_file1, :visible => true)
227
+ @old_value = @book.sheet(1)[1,1].Value
228
+ @book.close
229
+ end
230
+
231
+ after do
232
+ @book.close(:if_unsaved => :forget) if @book && @book.alive?
233
+ end
234
+
235
+ it "should unobtrusively open and close the workbook" do
236
+ @book.unobtrusively do |book|
237
+ book.should be_alive
238
+ book.saved.should be true
239
+ book.visible.should be true
240
+ book.writable.should be true
241
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
242
+ end
243
+ @book.should_not be_alive
244
+ new_book = Workbook.open(@simple_file1)
245
+ new_book.sheet(1)[1,1].Value.should_not == @old_value
246
+ end
247
+
248
+ it "should unobtrusively open and and not close the workbook" do
249
+ @book.unobtrusively(:visible => true, :keep_open => true) do |book|
250
+ book.should be_alive
251
+ book.saved.should be true
252
+ book.visible.should be true
253
+ book.writable.should be true
254
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
255
+ end
256
+ @book.should be_alive
257
+ @book.saved.should be true
258
+ @book.visible.should be true
259
+ @book.writable.should be true
260
+ @book.sheet(1)[1,1].Value.should_not == @old_value
261
+ @book.close
262
+ new_book = Workbook.open(@simple_file1)
263
+ new_book.sheet(1)[1,1].Value.should_not == @old_value
264
+ end
265
+
266
+ end
267
+
268
+ end
38
269
 
39
- describe "unobtrusively" do
270
+ describe "Workbook.unobtrusively" do
40
271
 
41
272
  # @private
42
273
  def unobtrusively_ok?
@@ -88,13 +319,13 @@ describe Workbook do
88
319
  @ole_e1 = WIN32OLE.new('Excel.Application')
89
320
  ws = @ole_e1.Workbooks
90
321
  @abs_filename = General.absolute_path(@simple_file1)
91
- @ole_wb = ws.Open(abs_filename)
322
+ @ole_wb = ws.Open(@abs_filename)
92
323
  @old_value = @ole_wb.Worksheets.Item(1).Cells.Item(1,1).Value
93
324
  end
94
325
 
95
326
  it "should connect" do
96
- Workbooks.unobtrusively(@simple_file1) do |book|
97
- book.excel.Workbook.Count.should == 1
327
+ Workbook.unobtrusively(@simple_file1) do |book|
328
+ book.excel.Workbooks.Count.should == 1
98
329
  Excel.excels_number.should == 1
99
330
  book.FullName.should == General.absolute_path(@simple_file1)
100
331
  book.saved.should be true
@@ -108,22 +339,24 @@ describe Workbook do
108
339
  end
109
340
 
110
341
  it "should set visible => true and remain invisiblity" do
111
- Workbooks.unobtrusively(@simple_file1, :visible => true) do |book|
342
+ Workbook.unobtrusively(@simple_file1, :visible => true) do |book|
112
343
  book.saved.should be true
113
344
  book.visible.should be true
114
345
  book.writable.should be true
115
346
  end
116
347
  ole_wb = WIN32OLE.connect(@abs_filename)
117
348
  ole_wb.Saved.should be true
118
- @ole_e1.Visible.should be false
349
+ @ole_e1.Visible.should be true
350
+ ole_wb.Windows(ole_wb.Name).Visible.should be false
119
351
  ole_wb.ReadOnly.should be false
120
352
  end
121
353
 
122
354
  it "should set read_only => true and remain writability" do
123
- Workbooks.unobtrusively(@simple_file1, :read_only => true) do |book|
355
+ Workbook.unobtrusively(@simple_file1, :read_only => true) do |book|
124
356
  book.saved.should be true
125
357
  book.visible.should be false
126
- book.writable.should be false
358
+ book.ReadOnly.should be true
359
+ book.writable.should be false
127
360
  end
128
361
  ole_wb = WIN32OLE.connect(@abs_filename)
129
362
  ole_wb.Saved.should be true
@@ -132,19 +365,21 @@ describe Workbook do
132
365
  end
133
366
 
134
367
  it "should set visible => true, read_only => true" do
135
- Workbooks.unobtrusively(@simple_file1, :visible => true, :read_only => true) do |book|
368
+ Workbook.unobtrusively(@simple_file1, :visible => true, :read_only => true) do |book|
136
369
  book.saved.should be true
137
370
  book.visible.should be true
371
+ book.ReadOnly.should be true
138
372
  book.writable.should be false
139
373
  end
140
374
  ole_wb = WIN32OLE.connect(@abs_filename)
141
375
  ole_wb.Saved.should be true
142
- @ole_e1.Visible.should be false
376
+ @ole_e1.Visible.should be true
377
+ ole_wb.Windows(ole_wb.Name).Visible.should be false
143
378
  ole_wb.ReadOnly.should be false
144
379
  end
145
380
 
146
381
  it "should modify and remain saved-status" do
147
- Workbooks.unobtrusively(@simple_file1) do |book|
382
+ Workbook.unobtrusively(@simple_file1) do |book|
148
383
  book.saved.should be true
149
384
  book.visible.should be false
150
385
  book.writable.should be true
@@ -163,7 +398,7 @@ describe Workbook do
163
398
  end
164
399
 
165
400
  it "should modify and remain saved-status and not save the new value when writable => false" do
166
- Workbooks.unobtrusively(@simple_file1, :writable => false) do |book|
401
+ Workbook.unobtrusively(@simple_file1, :writable => false) do |book|
167
402
  book.saved.should be true
168
403
  book.visible.should be false
169
404
  book.writable.should be true
@@ -189,13 +424,13 @@ describe Workbook do
189
424
  @ole_e1 = WIN32OLE.new('Excel.Application')
190
425
  ws = @ole_e1.Workbooks
191
426
  @abs_filename = General.absolute_path(@simple_file1)
192
- @ole_wb = ws.Open(abs_filename)
427
+ @ole_wb = ws.Open(@abs_filename)
193
428
  @ole_e1.Visible = true
194
429
  @ole_wb.Windows(@ole_wb.Name).Visible = true
195
430
  end
196
431
 
197
432
  it "should remain visibility" do
198
- Workbooks.unobtrusively(@simple_file1) do |book|
433
+ Workbook.unobtrusively(@simple_file1) do |book|
199
434
  book.saved.should be true
200
435
  book.visible.should be true
201
436
  book.writable.should be true
@@ -207,7 +442,7 @@ describe Workbook do
207
442
  end
208
443
 
209
444
  it "should set visible => false and remain visibility" do
210
- Workbooks.unobtrusively(@simple_file1, :visible => false) do |book|
445
+ Workbook.unobtrusively(@simple_file1, :visible => false) do |book|
211
446
  book.saved.should be true
212
447
  book.visible.should be false
213
448
  book.writable.should be true
@@ -226,17 +461,17 @@ describe Workbook do
226
461
  @ole_e1 = WIN32OLE.new('Excel.Application')
227
462
  ws = @ole_e1.Workbooks
228
463
  @abs_filename = General.absolute_path(@simple_file1)
229
- @ole_wb = ws.Open(abs_filename)
464
+ @ole_wb = ws.Open(@abs_filename)
230
465
  @ole_e1.Visible = true
231
466
  @ole_wb.Windows(@ole_wb.Name).Visible = true
232
467
  @old_value = @ole_wb.Worksheets.Item(1).Cells.Item(1,1).Value
233
- @ole_wb.Worksheets.Item(name).Cells.Item(1,1).Value = @old_value == "foo" ? "bar" : "foo"
468
+ @ole_wb.Worksheets.Item(1).Cells.Item(1,1).Value = @old_value = "foo" #== "foo" ? "bar" : "foo"
234
469
  @new_value = @ole_wb.Worksheets.Item(1).Cells.Item(1,1).Value
235
470
  @ole_wb.Saved.should be false
236
471
  end
237
472
 
238
473
  it "should connect and remain unsaved" do
239
- Workbooks.unobtrusively(@simple_file1) do |book|
474
+ Workbook.unobtrusively(@simple_file1) do |book|
240
475
  book.saved.should be false
241
476
  book.visible.should be true
242
477
  book.writable.should be true
@@ -247,9 +482,19 @@ describe Workbook do
247
482
  ole_wb.ReadOnly.should be false
248
483
  end
249
484
 
485
+ it "should raise error" do
486
+ expect{
487
+ Workbook.unobtrusively(@simple_file1, :read_only => true) do |book|
488
+ book.saved.should be false
489
+ book.visible.should be true
490
+ book.writable.should be false
491
+ end
492
+ }.to raise_error(WorkbookNotSaved)
493
+ end
494
+
250
495
  it "should remain writable" do
251
- Workbooks.unobtrusively(@simple_file1, :read_only => true) do |book|
252
- book.saved.should be false
496
+ Workbook.unobtrusively(@simple_file1, :read_only => true, :if_unsaved => :save) do |book|
497
+ book.saved.should be true
253
498
  book.visible.should be true
254
499
  book.writable.should be false
255
500
  end
@@ -260,8 +505,8 @@ describe Workbook do
260
505
  end
261
506
 
262
507
  it "should remain unsaved when modifying" do
263
- Workbooks.unobtrusively(@simple_file1) do |book|
264
- book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
508
+ Workbook.unobtrusively(@simple_file1) do |book|
509
+ book.sheet(1)[1,1] = "bar" #book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
265
510
  @new_value = book.sheet(1)[1,1].Value
266
511
  book.saved.should be false
267
512
  book.visible.should be true
@@ -271,15 +516,18 @@ describe Workbook do
271
516
  ole_wb.Saved.should be false
272
517
  @ole_e1.Visible.should be true
273
518
  ole_wb.ReadOnly.should be false
274
- ole_wb.Close
519
+ Excel.kill_all
275
520
  book2 = Workbook.open(@simple_file1)
276
521
  book2.sheet(1)[1,1].value.should_not == @old_value
277
522
  book2.sheet(1)[1,1].value.should == @new_value
278
523
  end
279
524
 
280
525
  it "should not write with :writable => false" do
281
- Workbooks.unobtrusively(@simple_file1, :writable => false) do |book|
282
- book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
526
+ @ole_wb.Worksheets.Item(1).Cells.Item(1,1).Value = @old_value = "foo"
527
+ @ole_wb.Save
528
+ @ole_wb.Worksheets.Item(1).Cells.Item(1,1).Value = @old_value = "foo"
529
+ Workbook.unobtrusively(@simple_file1, :writable => false) do |book|
530
+ book.sheet(1)[1,1] = "bar" #book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
283
531
  @new_value = book.sheet(1)[1,1].Value
284
532
  book.saved.should be false
285
533
  book.visible.should be true
@@ -289,7 +537,7 @@ describe Workbook do
289
537
  ole_wb.Saved.should be false
290
538
  @ole_e1.Visible.should be true
291
539
  ole_wb.ReadOnly.should be false
292
- ole_wb.Close
540
+ Excel.kill_all
293
541
  book2 = Workbook.open(@simple_file1)
294
542
  book2.sheet(1)[1,1].value.should == @old_value
295
543
  book2.sheet(1)[1,1].value.should_not == @new_value
@@ -303,14 +551,15 @@ describe Workbook do
303
551
  @ole_e1 = WIN32OLE.new('Excel.Application')
304
552
  ws = @ole_e1.Workbooks
305
553
  @abs_filename = General.absolute_path(@simple_file1)
306
- @ole_wb = ws.Open(abs_filename, RobustExcelOle::XlUpdateLinksNever, true)
554
+ @ole_wb = ws.Open(@abs_filename, RobustExcelOle::XlUpdateLinksNever, true)
555
+ @old_value = @ole_wb.Worksheets.Item(1).Cells.Item(1,1).Value
307
556
  @ole_e1.Visible = true
308
557
  @ole_wb.Windows(@ole_wb.Name).Visible = true
309
558
  @ole_wb.ReadOnly.should be true
310
559
  end
311
560
 
312
561
  it "should connect and remain read-only" do
313
- Workbooks.unobtrusively(@simple_file1) do |book|
562
+ Workbook.unobtrusively(@simple_file1) do |book|
314
563
  book.saved.should be true
315
564
  book.visible.should be true
316
565
  book.writable.should be false
@@ -322,8 +571,8 @@ describe Workbook do
322
571
  end
323
572
 
324
573
  it "should remain read-only" do
325
- Workbooks.unobtrusively(@simple_file1, :read_only => false) do |book|
326
- book.saved.should be false
574
+ Workbook.unobtrusively(@simple_file1, :read_only => false) do |book|
575
+ book.saved.should be true
327
576
  book.visible.should be true
328
577
  book.writable.should be true
329
578
  end
@@ -334,7 +583,25 @@ describe Workbook do
334
583
  end
335
584
 
336
585
  it "should remain read-only when modifying" do
337
- Workbooks.unobtrusively(@simple_file1) do |book|
586
+ Workbook.unobtrusively(@simple_file1) do |book|
587
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
588
+ @new_value = book.sheet(1)[1,1].Value
589
+ book.saved.should be false
590
+ book.visible.should be true
591
+ book.writable.should be false
592
+ end
593
+ ole_wb = WIN32OLE.connect(@abs_filename)
594
+ ole_wb.Saved.should be true
595
+ @ole_e1.Visible.should be true
596
+ ole_wb.ReadOnly.should be true
597
+ ole_wb.Close
598
+ book2 = Workbook.open(@simple_file1)
599
+ book2.sheet(1)[1,1].value.should == @old_value
600
+ book2.sheet(1)[1,1].value.should_not == @new_value
601
+ end
602
+
603
+ it "should remain read-only when modifying" do
604
+ Workbook.unobtrusively(@simple_file1, :read_only => false) do |book|
338
605
  book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
339
606
  @new_value = book.sheet(1)[1,1].Value
340
607
  book.saved.should be false
@@ -352,7 +619,7 @@ describe Workbook do
352
619
  end
353
620
 
354
621
  it "should remain read-only when modifying" do
355
- Workbooks.unobtrusively(@simple_file1, :read_only => false, :writable => true) do |book|
622
+ Workbook.unobtrusively(@simple_file1, :read_only => false, :writable => true) do |book|
356
623
  book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
357
624
  @new_value = book.sheet(1)[1,1].Value
358
625
  book.saved.should be false
@@ -370,7 +637,7 @@ describe Workbook do
370
637
  end
371
638
 
372
639
  it "should remain read-only when modifying and not save changes, when :writable => false" do
373
- Workbooks.unobtrusively(@simple_file1, :writable => false) do |book|
640
+ Workbook.unobtrusively(@simple_file1, :writable => false, :read_only => false) do |book|
374
641
  book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
375
642
  @new_value = book.sheet(1)[1,1].Value
376
643
  book.saved.should be false
@@ -388,7 +655,26 @@ describe Workbook do
388
655
  end
389
656
 
390
657
  it "should remain read-only when modifying and not save changes, when :writable => false" do
391
- Workbooks.unobtrusively(@simple_file1, :read_only => false, :writable => false) do |book|
658
+ Workbook.unobtrusively(@simple_file1, :read_only => false, :writable => false) do |book|
659
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
660
+ @new_value = book.sheet(1)[1,1].Value
661
+ book.saved.should be false
662
+ book.visible.should be true
663
+ book.writable.should be true
664
+ end
665
+ ole_wb = WIN32OLE.connect(@abs_filename)
666
+ ole_wb.Saved.should be true
667
+ @ole_e1.Visible.should be true
668
+ ole_wb.ReadOnly.should be true
669
+ ole_wb.Close
670
+ book2 = Workbook.open(@simple_file1)
671
+ book2.sheet(1)[1,1].value.should == @old_value
672
+ book2.sheet(1)[1,1].value.should_not == @new_value
673
+ end
674
+
675
+
676
+ it "should remain read-only when modifying and not save changes, when :writable => false" do
677
+ Workbook.unobtrusively(@simple_file1, :writable => false, :read_only => false) do |book|
392
678
  book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
393
679
  @new_value = book.sheet(1)[1,1].Value
394
680
  book.saved.should be false
@@ -405,6 +691,43 @@ describe Workbook do
405
691
  book2.sheet(1)[1,1].value.should_not == @new_value
406
692
  end
407
693
 
694
+ it "should remain read-only when modifying and not save changes, even if :writable => true" do
695
+ Workbook.unobtrusively(@simple_file1, :writable => true) do |book|
696
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
697
+ @new_value = book.sheet(1)[1,1].Value
698
+ book.saved.should be false
699
+ book.visible.should be true
700
+ book.writable.should be false
701
+ end
702
+ ole_wb = WIN32OLE.connect(@abs_filename)
703
+ ole_wb.Saved.should be true
704
+ @ole_e1.Visible.should be true
705
+ ole_wb.ReadOnly.should be true
706
+ ole_wb.Close
707
+ book2 = Workbook.open(@simple_file1)
708
+ book2.sheet(1)[1,1].value.should == @old_value
709
+ book2.sheet(1)[1,1].value.should_not == @new_value
710
+ end
711
+
712
+ it "should remain read-only when modifying and not save changes, when :writable => false" do
713
+ Workbook.unobtrusively(@simple_file1, :writable => false) do |book|
714
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
715
+ @new_value = book.sheet(1)[1,1].Value
716
+ book.saved.should be false
717
+ book.visible.should be true
718
+ book.writable.should be false
719
+ end
720
+ ole_wb = WIN32OLE.connect(@abs_filename)
721
+ ole_wb.Saved.should be true
722
+ @ole_e1.Visible.should be true
723
+ ole_wb.ReadOnly.should be true
724
+ Excel.kill_all
725
+ book2 = Workbook.open(@simple_file1)
726
+ book2.sheet(1)[1,1].value.should == @old_value
727
+ book2.sheet(1)[1,1].value.should_not == @new_value
728
+ end
729
+
730
+
408
731
  end
409
732
 
410
733
  end
@@ -464,7 +787,7 @@ describe Workbook do
464
787
  end
465
788
  Excel.current.Workbooks.Count.should == 0
466
789
  b1 = Workbook.open(@simple_file1)
467
- b1.sheet(1)[1,1].Value.should_not == @old_value
790
+ b1.sheet(1)[1,1].Value.should == @old_value
468
791
  end
469
792
 
470
793
  it "should open as read-write" do
@@ -495,8 +818,8 @@ describe Workbook do
495
818
  Workbook.unobtrusively(@simple_file, :read_only => true) do |book|
496
819
  book.ReadOnly.should be true
497
820
  @old_value = book.sheet(1)[1,1].Value
498
- book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
499
- book.Saved.should be false
821
+ #book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
822
+ #book.Saved.should be false
500
823
  end
501
824
  Excel.current.Workbooks.Count.should == 0
502
825
  b1 = Workbook.open(@simple_file1)
@@ -577,7 +900,7 @@ describe Workbook do
577
900
  end
578
901
  @book.close
579
902
  book2 = Workbook.open(@simple_file1)
580
- book2.sheet(1)[1,1].Value.should_not == @old_value
903
+ book2.sheet(1)[1,1].Value.should == @old_value
581
904
  end
582
905
 
583
906
  it "should open as read-write" do
@@ -607,18 +930,20 @@ describe Workbook do
607
930
  end
608
931
 
609
932
  it "should force to read-only" do
610
- Workbook.unobtrusively(@simple_file1, :read_only => true) do |book|
611
- book.ReadOnly.should be true
612
- book.should == @book
613
- book.filename.should == @book.filename
614
- book.excel.should == @book.excel
615
- book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
616
- end
617
- @book.close
618
- book2 = Workbook.open(@simple_file1)
619
- book2.sheet(1)[1,1].Value.should == @old_value
933
+ expect{
934
+ Workbook.unobtrusively(@simple_file1, :if_unsaved => :forget, :read_only => true) do |book|
935
+ book.ReadOnly.should be true
936
+ book.should == @book
937
+ book.filename.should == @book.filename
938
+ book.excel.should == @book.excel
939
+ book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
940
+ end
941
+ }.to raise_error(WorkbookReadOnly)
620
942
  end
621
943
 
944
+
945
+
946
+
622
947
  it "should force to read-only" do
623
948
  Workbook.unobtrusively(@simple_file1, :read_only => true, :writable => false) do |book|
624
949
  book.ReadOnly.should be true
@@ -685,7 +1010,7 @@ describe Workbook do
685
1010
 
686
1011
  it "should open as read-write" do
687
1012
  Workbook.unobtrusively(@simple_file1, :read_only => false) do |book|
688
- book.Readonly.should be true
1013
+ book.Readonly.should be false
689
1014
  book.should == @book
690
1015
  book.filename.should == @book.filename
691
1016
  book.excel.should == @book.excel
@@ -693,7 +1018,7 @@ describe Workbook do
693
1018
  end
694
1019
  @book.close
695
1020
  book2 = Workbook.open(@simple_file1)
696
- book2.sheet(1)[1,1].Value.should == @old_value
1021
+ book2.sheet(1)[1,1].Value.should_not == @old_value
697
1022
  end
698
1023
 
699
1024
  it "should open as read-write" do
@@ -709,9 +1034,9 @@ describe Workbook do
709
1034
  book2.sheet(1)[1,1].Value.should == @old_value
710
1035
  end
711
1036
 
712
- it "should force to read-write" do
1037
+ it "should remain read-only even if writeble => true" do
713
1038
  Workbook.unobtrusively(@simple_file1, :writable => true) do |book|
714
- book.ReadOnly.should be false
1039
+ book.ReadOnly.should be true
715
1040
  book.should == @book
716
1041
  book.filename.should == @book.filename
717
1042
  book.excel.should == @book.excel
@@ -719,7 +1044,7 @@ describe Workbook do
719
1044
  end
720
1045
  @book.close
721
1046
  book2 = Workbook.open(@simple_file1)
722
- book2.sheet(1)[1,1].Value.should_not == @old_value
1047
+ book2.sheet(1)[1,1].Value.should == @old_value
723
1048
  end
724
1049
 
725
1050
  it "should force to read-write" do
@@ -897,7 +1222,7 @@ describe Workbook do
897
1222
  end
898
1223
 
899
1224
  it "should force to read-only" do
900
- Workbook.unobtrusively(@simple_file1, :read_only => true) do |book|
1225
+ Workbook.unobtrusively(@simple_file1, :read_only => true, :if_unsaved => :save) do |book|
901
1226
  book.ReadOnly.should be true
902
1227
  end
903
1228
  @book.Saved.should be false
@@ -906,7 +1231,7 @@ describe Workbook do
906
1231
  end
907
1232
 
908
1233
  it "should force to read-only with writable false" do
909
- Workbook.unobtrusively(@simple_file1, :read_only => true, :writable => false) do |book|
1234
+ Workbook.unobtrusively(@simple_file1, :if_unsaved => :save, :read_only => true, :writable => false) do |book|
910
1235
  book.ReadOnly.should be true
911
1236
  end
912
1237
  @book.Saved.should be false
@@ -955,48 +1280,23 @@ describe Workbook do
955
1280
  end
956
1281
 
957
1282
  it "should open as read-only" do
958
- Workbook.unobtrusively(@simple_file1, :read_only => false) do |book|
959
- book.Readonly.should be false
960
- book.should == @book
961
- book.filename.should == @book.filename
962
- book.excel.should == @book.excel
963
- book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
964
- end
965
- @book.Saved.should be false
966
- @book.ReadOnly.should be true
967
- @book.sheet(1)[1,1].Value.should_not == @old_value
968
- @book.close
969
- book2 = Workbook.open(@simple_file1)
970
- book2.sheet(1)[1,1].Value.should_not == @old_value
1283
+ expect{
1284
+ Workbook.unobtrusively(@simple_file1, :if_unsaved => :accept, :read_only => false, :writable => false)
1285
+ }.to raise_error(OptionInvalid)
971
1286
  end
972
1287
 
973
- it "should open as read-only" do
974
- Workbook.unobtrusively(@simple_file1, :read_only => false, :writable => false) do |book|
975
- book.Readonly.should be false
976
- book.should == @book
977
- book.filename.should == @book.filename
978
- book.excel.should == @book.excel
1288
+ it "should remain read-only and not write, even with :writable => true" do
1289
+ Workbook.unobtrusively(@simple_file1, :writable => true) do |book|
1290
+ book.Readonly.should be true
1291
+ book.Saved.should be false
979
1292
  book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
980
1293
  end
981
- @book.Saved.should be false
982
1294
  @book.ReadOnly.should be true
983
1295
  @book.sheet(1)[1,1].Value.should_not == @old_value
984
1296
  @book.close
985
1297
  book2 = Workbook.open(@simple_file1)
986
1298
  book2.sheet(1)[1,1].Value.should_not == @old_value
987
1299
  end
988
-
989
- it "should raise an error" do
990
- expect{
991
- Workbook.unobtrusively(@simple_file1, :writable => true)
992
- }.to raise_error(NotImplementedREOError, "unsaved read-only workbook shall be written")
993
- end
994
-
995
- it "should raise an error" do
996
- expect{
997
- Workbook.unobtrusively(@simple_file1, :writable => true)
998
- }.to raise_error(NotImplementedREOError, "unsaved read-only workbook shall be written")
999
- end
1000
1300
 
1001
1301
  it "should force to read-only" do
1002
1302
  Workbook.unobtrusively(@simple_file1, :read_only => true) do |book|
@@ -1097,21 +1397,20 @@ describe Workbook do
1097
1397
  book = Workbook.open(@simple_file1)
1098
1398
  book.sheet(1)[1,1].Value.should == @old_value
1099
1399
  end
1100
-
1400
+ =begin
1101
1401
  it "should write in the outer and not in the inner block" do
1102
- Workbook.unobtrusively(@simple_file1) do |book|
1402
+ Workbook.unobtrusively(@simple_file1, :if_unsaved => :forget) do |book|
1103
1403
  @old_value = book.sheet(1)[1,1].Value
1104
1404
  book.ReadOnly.should be false
1105
1405
  book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
1106
1406
  book.Saved.should be false
1107
1407
  book.sheet(1)[1,1].Value.should_not == @old_value
1108
- Workbook.unobtrusively(@simple_file1, :read_only => true) do |book2|
1408
+ Workbook.unobtrusively(@simple_file1, :if_unsaved => :forget, :read_only => true) do |book2|
1109
1409
  book2.should == book
1110
1410
  book2.ReadOnly.should be true
1111
- book2.Saved.should be false
1112
- book2.sheet(1)[1,1].Value.should_not == @old_value
1411
+ book2.Saved.should be true
1113
1412
  book2.sheet(1)[1,1] = book2.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
1114
- book2.sheet(1)[1,1].Value.should == @old_value
1413
+ #book2.sheet(1)[1,1].Value.should_not == @old_value
1115
1414
  end
1116
1415
  book.should be_alive
1117
1416
  book.Saved.should be false
@@ -1120,7 +1419,7 @@ describe Workbook do
1120
1419
  book = Workbook.open(@simple_file1)
1121
1420
  book.sheet(1)[1,1].Value.should_not == @old_value
1122
1421
  end
1123
-
1422
+ =end
1124
1423
  it "should write in the outer and not in the inner block" do
1125
1424
  Workbook.unobtrusively(@simple_file1) do |book|
1126
1425
  @old_value = book.sheet(1)[1,1].Value
@@ -1143,15 +1442,15 @@ describe Workbook do
1143
1442
  book = Workbook.open(@simple_file1)
1144
1443
  book.sheet(1)[1,1].Value.should == @old_value
1145
1444
  end
1146
-
1445
+ =begin
1147
1446
  it "should be read-only in the outer and write in the inner block" do
1148
- Workbook.unobtrusively(@simple_file1, :read_only => true) do |book|
1447
+ Workbook.unobtrusively(@simple_file1, :read_only => true, :if_unsaved => :save) do |book|
1149
1448
  @old_value = book.sheet(1)[1,1].Value
1150
1449
  book.ReadOnly.should be true
1151
1450
  book.sheet(1)[1,1] = book.sheet(1)[1,1].Value == "foo" ? "bar" : "foo"
1152
1451
  book.Saved.should be false
1153
1452
  book.sheet(1)[1,1].Value.should_not == @old_value
1154
- Workbook.unobtrusively(@simple_file1) do |book2|
1453
+ Workbook.unobtrusively(@simple_file1, :if_unsaved => :save) do |book2|
1155
1454
  book2.should == book
1156
1455
  book2.ReadOnly.should be true
1157
1456
  book2.Saved.should be false
@@ -1167,7 +1466,7 @@ describe Workbook do
1167
1466
  book = Workbook.open(@simple_file1)
1168
1467
  book.sheet(1)[1,1].Value.should == @old_value
1169
1468
  end
1170
-
1469
+ =end
1171
1470
  end
1172
1471
 
1173
1472
  end
@@ -1235,7 +1534,7 @@ describe Workbook do
1235
1534
  book1.ReadOnly.should be true
1236
1535
  book1.close
1237
1536
  book2 = Workbook.open(@simple_file1)
1238
- book2.sheet(1)[1,1].Value.should_not == old_value
1537
+ book2.sheet(1)[1,1].Value.should == old_value
1239
1538
  end
1240
1539
 
1241
1540
  end
@@ -1263,6 +1562,7 @@ describe Workbook do
1263
1562
 
1264
1563
  it "should remain check-compatibility false" do
1265
1564
  book1 = Workbook.open(@simple_file1, :check_compatibility => false)
1565
+ book1.CheckCompatibility.should be false
1266
1566
  Workbook.unobtrusively(@simple_file1) do |book|
1267
1567
  end
1268
1568
  book1.CheckCompatibility.should be false
@@ -1270,6 +1570,7 @@ describe Workbook do
1270
1570
 
1271
1571
  it "should remain check-compatibility true" do
1272
1572
  book1 = Workbook.open(@simple_file1, :check_compatibility => true)
1573
+ book1.CheckCompatibility.should be true
1273
1574
  Workbook.unobtrusively(@simple_file1) do |book|
1274
1575
  end
1275
1576
  book1.CheckCompatibility.should be true
@@ -1651,16 +1952,16 @@ describe Workbook do
1651
1952
  Workbook.unobtrusively(@simple_file1, :if_closed => :new) do |book|
1652
1953
  book.excel.should_not == @book.excel
1653
1954
  book.excel.should_not == new_excel
1654
- book.excel.visible.should be false
1655
- book.excel.displayalerts.should == :if_visible
1955
+ book.excel.properties[:visible].should be false
1956
+ book.excel.properties[:displayalerts].should == :if_visible
1656
1957
  @another_excel = book.excel
1657
1958
  end
1658
1959
  Workbook.unobtrusively(@simple_file1, :if_closed => :current) do |book|
1659
1960
  book.excel.should_not == @book.excel
1660
1961
  book.excel.should_not == new_excel
1661
1962
  book.excel.should == @another_excel
1662
- book.excel.visible.should be false
1663
- book.excel.displayalerts.should == :if_visible
1963
+ book.excel.properties[:visible].should be false
1964
+ book.excel.properties[:displayalerts].should == :if_visible
1664
1965
  end
1665
1966
  end
1666
1967
 
@@ -2011,7 +2312,7 @@ describe Workbook do
2011
2312
  end
2012
2313
  end
2013
2314
 
2014
- describe "promoting" do
2315
+ describe "type-lifting" do
2015
2316
 
2016
2317
  context "with standard" do
2017
2318
 
@@ -2024,7 +2325,7 @@ describe Workbook do
2024
2325
  @book.close
2025
2326
  end
2026
2327
 
2027
- it "should promote" do
2328
+ it "should type-lift" do
2028
2329
  Workbook.unobtrusively(@ole_workbook) do |book|
2029
2330
  book.should === @book
2030
2331
  book.equal?(@book).should be true
@@ -2057,7 +2358,8 @@ describe Workbook do
2057
2358
  book.Saved.should be false
2058
2359
  book.excel.should == @book.excel
2059
2360
  end
2060
- new_book = Workbook.open(@simple_file1, :visible => true)
2361
+ Excel.kill_all
2362
+ new_book = Workbook.open(@simple_file1)
2061
2363
  sheet = new_book.sheet(1)
2062
2364
  sheet[1,1].Value.should == @old_cell_value
2063
2365
  end
@@ -2071,7 +2373,8 @@ describe Workbook do
2071
2373
  sheet[1,1] = cell.Value == "foo" ? "bar" : "foo"
2072
2374
  book.excel.should == another_excel
2073
2375
  end
2074
- new_book = Workbook.open(@simple_file1, :visible => true)
2376
+ Excel.kill_all
2377
+ new_book = Workbook.open(@simple_file1)
2075
2378
  sheet = new_book.sheet(1)
2076
2379
  sheet[1,1].Value.should == @old_cell_value
2077
2380
  end
@@ -2084,10 +2387,11 @@ describe Workbook do
2084
2387
  sheet[1,1] = cell.Value == "foo" ? "bar" : "foo"
2085
2388
  book.excel.should_not == @book.excel
2086
2389
  book.excel.should_not == new_excel
2087
- book.excel.visible.should be false
2088
- book.excel.displayalerts.should == :if_visible
2390
+ book.excel.properties[:visible].should be false
2391
+ book.excel.properties[:displayalerts].should == :if_visible
2089
2392
  end
2090
- new_book = Workbook.open(@simple_file1, :visible => true)
2393
+ Excel.kill_all
2394
+ new_book = Workbook.open(@simple_file1)
2091
2395
  sheet = new_book.sheet(1)
2092
2396
  sheet[1,1].Value.should == @old_cell_value
2093
2397
  end
@@ -2126,8 +2430,8 @@ describe Workbook do
2126
2430
  sheet[1,1] = cell.Value == "foo" ? "bar" : "foo"
2127
2431
  book.excel.should_not == @book.excel
2128
2432
  book.excel.should_not == new_excel
2129
- book.excel.visible.should be false
2130
- book.excel.displayalerts.should == :if_visible
2433
+ book.excel.properties[:visible].should be false
2434
+ book.excel.properties[:displayalerts].should == :if_visible
2131
2435
  end
2132
2436
  new_book = Workbook.open(@simple_file1, :visible => true)
2133
2437
  sheet = new_book.sheet(1)