robust_excel_ole 1.0.1 → 1.0.2

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