robust_excel_ole 1.14 → 1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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)