robust_excel_ole 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/README.rdoc +69 -56
  2. data/README_detail.rdoc +44 -34
  3. data/TodoList.md +8 -6
  4. data/examples/edit_sheets/example_access_sheets_and_cells.rb +6 -6
  5. data/examples/edit_sheets/example_adding_sheets.rb +2 -2
  6. data/examples/edit_sheets/example_ranges.rb +3 -3
  7. data/examples/open_save_close/example_control_to_excel.rb +2 -2
  8. data/examples/open_save_close/example_default_excel.rb +2 -2
  9. data/examples/open_save_close/example_force_excel.rb +1 -1
  10. data/examples/open_save_close/example_if_obstructed_closeifsaved.rb +4 -4
  11. data/examples/open_save_close/example_if_obstructed_forget.rb +2 -2
  12. data/examples/open_save_close/example_if_obstructed_save.rb +2 -2
  13. data/examples/open_save_close/example_if_unsaved_accept.rb +1 -1
  14. data/examples/open_save_close/example_if_unsaved_forget.rb +1 -1
  15. data/examples/open_save_close/example_if_unsaved_forget_more.rb +1 -1
  16. data/examples/open_save_close/example_read_only.rb +2 -2
  17. data/examples/open_save_close/example_rename_cells.rb +1 -1
  18. data/examples/open_save_close/example_reuse.rb +3 -3
  19. data/examples/open_save_close/example_simple.rb +2 -2
  20. data/examples/open_save_close/example_unobtrusively.rb +1 -1
  21. data/lib/robust_excel_ole/book.rb +97 -128
  22. data/lib/robust_excel_ole/book_store.rb +23 -23
  23. data/lib/robust_excel_ole/excel.rb +12 -14
  24. data/lib/robust_excel_ole/version.rb +1 -1
  25. data/spec/book_spec.rb +462 -289
  26. data/spec/book_store_spec.rb +36 -55
  27. data/spec/data/book_with_blank.xls +0 -0
  28. data/spec/data/{different_simple.xls → different_workbook.xls} +0 -0
  29. data/spec/data/merge_cells.xls +0 -0
  30. data/spec/data/{more_simple.xls → more_workbook.xls} +0 -0
  31. data/spec/data/protected_sheet.xls +0 -0
  32. data/spec/data/{simple.xls → workbook.xls} +0 -0
  33. data/spec/data/{simple.xlsm → workbook.xlsm} +0 -0
  34. data/spec/data/{simple.xlsx → workbook.xlsx} +0 -0
  35. data/spec/excel_spec.rb +40 -0
  36. metadata +9 -9
@@ -4,8 +4,6 @@ module RobustExcelOle
4
4
 
5
5
  class Excel
6
6
 
7
- attr_writer :excel
8
-
9
7
  @@hwnd2excel = {}
10
8
 
11
9
  # closes all Excel instances
@@ -56,10 +54,10 @@ module RobustExcelOle
56
54
  if stored
57
55
  result = stored
58
56
  else
59
- WIN32OLE.const_load(excel, RobustExcelOle) unless RobustExcelOle.const_defined?(:CONSTANTS)
60
57
  result = super(options)
61
- result.excel = excel
62
- @@hwnd2excel[hwnd] = result
58
+ result.instance_variable_set(:@excel, excel)
59
+ WIN32OLE.const_load(excel, RobustExcelOle) unless RobustExcelOle.const_defined?(:CONSTANTS)
60
+ @@hwnd2excel[hwnd] = result
63
61
  end
64
62
  result
65
63
  end
@@ -68,12 +66,12 @@ module RobustExcelOle
68
66
  end
69
67
 
70
68
  # generate, save and close an empty workbook
71
- def self.generate_workbook file_name
72
- excel = create
73
- excel.Workbooks.Add
74
- empty_workbook = excel.Workbooks.Item(1)
75
- empty_workbook.SaveAs(file_name, XlExcel8)
76
- empty_workbook.Close
69
+ def generate_workbook file_name
70
+ self.Workbooks.Add
71
+ empty_workbook = self.Workbooks.Item(1)
72
+ filename = RobustExcelOle::absolute_path(file_name)
73
+ empty_workbook.SaveAs(filename.gsub("/","\\"))
74
+ empty_workbook
77
75
  end
78
76
 
79
77
  def self.hwnd2excel(hwnd)
@@ -84,12 +82,12 @@ module RobustExcelOle
84
82
  self.Hwnd
85
83
  end
86
84
 
87
- # returns true, if the Excel instances are identical, false otherwise
85
+ # returns true, if the Excel instances are alive and identical, false otherwise
88
86
  def == other_excel
89
- self.Hwnd == other_excel.Hwnd if other_excel.is_a?(Excel)
87
+ self.Hwnd == other_excel.Hwnd if other_excel.is_a?(Excel) && self.alive? && other_excel.alive?
90
88
  end
91
89
 
92
- # returns true, if the Excel instances is alive, false otherwise
90
+ # returns true, if the Excel instances responds to VVA methods, false otherwise
93
91
  def alive?
94
92
  @excel.Name
95
93
  true
@@ -1,3 +1,3 @@
1
1
  module RobustExcelOle
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end