surpass 0.0.4 → 0.0.6

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.
Files changed (259) hide show
  1. data/History.txt +4 -0
  2. data/README.txt +3 -20
  3. data/Rakefile +2 -13
  4. data/bin/surpass +8 -0
  5. data/examples/big-16mb.rb +25 -0
  6. data/examples/big-random-strings.rb +28 -0
  7. data/examples/blanks.rb +34 -0
  8. data/examples/blanks.xls +0 -0
  9. data/examples/col_width.rb +16 -0
  10. data/examples/col_width.xls +0 -0
  11. data/examples/dates.rb +31 -0
  12. data/examples/dates.xls +0 -0
  13. data/examples/format.rb +23 -0
  14. data/examples/format.xls +0 -0
  15. data/examples/hello-world.rb +9 -0
  16. data/examples/hello-world.xls +0 -0
  17. data/examples/image.rb +10 -0
  18. data/examples/image.xls +0 -0
  19. data/examples/merged.rb +36 -0
  20. data/examples/merged.xls +0 -0
  21. data/examples/merged0.rb +27 -0
  22. data/examples/merged0.xls +0 -0
  23. data/examples/merged1.rb +99 -0
  24. data/examples/merged1.xls +0 -0
  25. data/examples/num_formats.rb +55 -0
  26. data/examples/num_formats.xls +0 -0
  27. data/examples/numbers.rb +24 -0
  28. data/examples/numbers.xls +0 -0
  29. data/examples/outline.rb +110 -0
  30. data/examples/outline.xls +0 -0
  31. data/examples/panes.rb +48 -0
  32. data/examples/panes.xls +0 -0
  33. data/examples/protection.rb +132 -0
  34. data/examples/protection.xls +0 -0
  35. data/examples/python.bmp +0 -0
  36. data/examples/row_styles.rb +16 -0
  37. data/examples/row_styles.xls +0 -0
  38. data/examples/row_styles_empty.rb +15 -0
  39. data/examples/row_styles_empty.xls +0 -0
  40. data/examples/set_cell_and_range_style.rb +12 -0
  41. data/examples/set_cell_and_range_style.xls +0 -0
  42. data/examples/wrapped-text.rb +13 -0
  43. data/examples/wrapped-text.xls +0 -0
  44. data/examples/write_arrays.rb +22 -0
  45. data/examples/write_arrays.xls +0 -0
  46. data/examples/ws_props.rb +80 -0
  47. data/lib/surpass/ExcelFormula.g +366 -0
  48. data/lib/surpass/ExcelFormula.tokens +30 -0
  49. data/lib/surpass/ExcelFormulaLexer.rb +922 -0
  50. data/lib/surpass/ExcelFormulaParser.rb +602 -0
  51. data/lib/{biff_record.rb → surpass/biff_record.rb} +0 -0
  52. data/lib/{bitmap.rb → surpass/bitmap.rb} +0 -0
  53. data/lib/{cell.rb → surpass/cell.rb} +2 -34
  54. data/lib/{chart.rb → surpass/chart.rb} +0 -0
  55. data/lib/{column.rb → surpass/column.rb} +0 -0
  56. data/lib/{document.rb → surpass/document.rb} +0 -0
  57. data/lib/surpass/excel_formula.rb +23 -0
  58. data/lib/{excel_magic.rb → surpass/excel_magic.rb} +0 -0
  59. data/lib/{formatting.rb → surpass/formatting.rb} +93 -53
  60. data/lib/{row.rb → surpass/row.rb} +0 -0
  61. data/lib/{style.rb → surpass/style.rb} +2 -1
  62. data/lib/surpass/tokens.txt +2 -0
  63. data/lib/{utilities.rb → surpass/utilities.rb} +0 -0
  64. data/lib/{workbook.rb → surpass/workbook.rb} +0 -0
  65. data/lib/{worksheet.rb → surpass/worksheet.rb} +15 -6
  66. data/lib/surpass.rb +1 -1
  67. data/spec/biff_record_spec.rb +268 -0
  68. data/spec/cell_spec.rb +56 -0
  69. data/spec/data/random-strings.txt +10000 -0
  70. data/spec/document_spec.rb +168 -0
  71. data/spec/excel_formula_spec.rb +27 -0
  72. data/spec/formatting_spec.rb +53 -0
  73. data/spec/output/cells-rk.xls +0 -0
  74. data/spec/output/cells.xls +0 -0
  75. data/spec/output/mini.xls +0 -0
  76. data/spec/reference/P-0508-0000507647-3280-5298.xls +0 -0
  77. data/spec/reference/all-cell-styles.bin +0 -0
  78. data/spec/reference/all-number-formats.bin +0 -0
  79. data/spec/reference/all-styles.bin +0 -0
  80. data/spec/reference/mini.xls +0 -0
  81. data/spec/row_spec.rb +19 -0
  82. data/spec/spec_helper.rb +10 -0
  83. data/spec/style_spec.rb +89 -0
  84. data/spec/surpass_spec.rb +7 -0
  85. data/spec/utilities_spec.rb +57 -0
  86. data/spec/workbook_spec.rb +48 -0
  87. data/spec/worksheet_spec.rb +0 -0
  88. data/stats/cloc.txt +8 -0
  89. data/stats/rcov.txt +0 -0
  90. data/stats/specdoc.txt +158 -0
  91. data/surpass.gemspec +40 -0
  92. data/tasks/setup.rb +1 -1
  93. data/tasks/zentest.rake +36 -0
  94. data/webby/README.txt +6 -0
  95. data/webby/Sitefile +43 -0
  96. data/webby/content/css/pygments.txt +6 -0
  97. data/webby/content/css/style.css +279 -0
  98. data/webby/content/examples/autoformat.png +0 -0
  99. data/webby/content/examples/autoformat.rb +32 -0
  100. data/webby/content/examples/autoformat.xls +0 -0
  101. data/webby/content/examples/borders.png +0 -0
  102. data/webby/content/examples/borders.rb +15 -0
  103. data/webby/content/examples/borders.xls +0 -0
  104. data/webby/content/examples/colours.png +0 -0
  105. data/webby/content/examples/colours.rb +23 -0
  106. data/webby/content/examples/colours.xls +0 -0
  107. data/webby/content/examples/data.png +0 -0
  108. data/webby/content/examples/data.rb +11 -0
  109. data/webby/content/examples/data.xls +0 -0
  110. data/webby/content/examples/formatting.png +0 -0
  111. data/webby/content/examples/formatting.rb +78 -0
  112. data/webby/content/examples/formatting.xls +0 -0
  113. data/webby/content/examples/hello-world.png +0 -0
  114. data/webby/content/examples/hello-world.py +8 -0
  115. data/webby/content/examples/hello-world.rb +9 -0
  116. data/webby/content/examples/hello-world.xls +0 -0
  117. data/webby/content/examples/number-format-string.png +0 -0
  118. data/webby/content/examples/number-format-string.rb +14 -0
  119. data/webby/content/examples/number-format-string.xls +0 -0
  120. data/webby/content/examples/patterns.png +0 -0
  121. data/webby/content/examples/patterns.rb +26 -0
  122. data/webby/content/examples/patterns.xls +0 -0
  123. data/webby/content/examples/show-greens.sh +1 -0
  124. data/webby/content/examples/surpass-info.sh +1 -0
  125. data/webby/content/img/Thumbs.db +0 -0
  126. data/webby/content/img/bg_menu.gif +0 -0
  127. data/webby/content/img/bg_t.gif +0 -0
  128. data/webby/content/img/bullet.gif +0 -0
  129. data/webby/content/img/logo.png +0 -0
  130. data/webby/content/img/logo_.jpg +0 -0
  131. data/webby/content/img/top_bg.gif +0 -0
  132. data/webby/content/img/top_bg_.gif +0 -0
  133. data/webby/content/index.txt +16 -0
  134. data/webby/content/installation/index.txt +24 -0
  135. data/webby/content/source/ExcelFormulaLexer.txt +7 -0
  136. data/webby/content/source/ExcelFormulaParser.txt +7 -0
  137. data/webby/content/source/biff_record.txt +7 -0
  138. data/webby/content/source/bitmap.txt +7 -0
  139. data/webby/content/source/cell.txt +7 -0
  140. data/webby/content/source/chart.txt +7 -0
  141. data/webby/content/source/column.txt +7 -0
  142. data/webby/content/source/document.txt +7 -0
  143. data/webby/content/source/excel_formula.txt +7 -0
  144. data/webby/content/source/excel_magic.txt +7 -0
  145. data/webby/content/source/formatting.txt +7 -0
  146. data/webby/content/source/row.txt +7 -0
  147. data/webby/content/source/style.txt +7 -0
  148. data/webby/content/source/utilities.txt +7 -0
  149. data/webby/content/source/workbook.txt +7 -0
  150. data/webby/content/source/worksheet.txt +7 -0
  151. data/webby/content/surpass-manual.erb +198 -0
  152. data/webby/layouts/book.txt +29 -0
  153. data/webby/layouts/default.txt +27 -0
  154. data/webby/layouts/two_column.txt +25 -0
  155. data/webby/layouts/web.txt +66 -0
  156. data/webby/output/.cairn +0 -0
  157. data/webby/output/css/blueprint/ie.css +26 -0
  158. data/webby/output/css/blueprint/plugins/buttons/icons/cross.png +0 -0
  159. data/webby/output/css/blueprint/plugins/buttons/icons/key.png +0 -0
  160. data/webby/output/css/blueprint/plugins/buttons/icons/tick.png +0 -0
  161. data/webby/output/css/blueprint/plugins/buttons/readme.txt +32 -0
  162. data/webby/output/css/blueprint/plugins/buttons/screen.css +97 -0
  163. data/webby/output/css/blueprint/plugins/fancy-type/readme.txt +14 -0
  164. data/webby/output/css/blueprint/plugins/fancy-type/screen.css +71 -0
  165. data/webby/output/css/blueprint/plugins/link-icons/icons/doc.png +0 -0
  166. data/webby/output/css/blueprint/plugins/link-icons/icons/email.png +0 -0
  167. data/webby/output/css/blueprint/plugins/link-icons/icons/external.png +0 -0
  168. data/webby/output/css/blueprint/plugins/link-icons/icons/feed.png +0 -0
  169. data/webby/output/css/blueprint/plugins/link-icons/icons/im.png +0 -0
  170. data/webby/output/css/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  171. data/webby/output/css/blueprint/plugins/link-icons/icons/visited.png +0 -0
  172. data/webby/output/css/blueprint/plugins/link-icons/icons/xls.png +0 -0
  173. data/webby/output/css/blueprint/plugins/link-icons/readme.txt +18 -0
  174. data/webby/output/css/blueprint/plugins/link-icons/screen.css +40 -0
  175. data/webby/output/css/blueprint/plugins/rtl/readme.txt +10 -0
  176. data/webby/output/css/blueprint/plugins/rtl/screen.css +109 -0
  177. data/webby/output/css/blueprint/print.css +30 -0
  178. data/webby/output/css/blueprint/screen.css +251 -0
  179. data/webby/output/css/blueprint/src/forms.css +49 -0
  180. data/webby/output/css/blueprint/src/grid.css +212 -0
  181. data/webby/output/css/blueprint/src/grid.png +0 -0
  182. data/webby/output/css/blueprint/src/ie.css +59 -0
  183. data/webby/output/css/blueprint/src/print.css +85 -0
  184. data/webby/output/css/blueprint/src/reset.css +38 -0
  185. data/webby/output/css/blueprint/src/typography.css +105 -0
  186. data/webby/output/css/pygments.css +59 -0
  187. data/webby/output/css/site.css +62 -0
  188. data/webby/output/css/style.css +279 -0
  189. data/webby/output/examples/autoformat.png +0 -0
  190. data/webby/output/examples/autoformat.rb +32 -0
  191. data/webby/output/examples/autoformat.xls +0 -0
  192. data/webby/output/examples/borders.png +0 -0
  193. data/webby/output/examples/borders.rb +15 -0
  194. data/webby/output/examples/borders.xls +0 -0
  195. data/webby/output/examples/colours.png +0 -0
  196. data/webby/output/examples/colours.rb +23 -0
  197. data/webby/output/examples/colours.xls +0 -0
  198. data/webby/output/examples/data.png +0 -0
  199. data/webby/output/examples/data.rb +11 -0
  200. data/webby/output/examples/data.xls +0 -0
  201. data/webby/output/examples/formatting.png +0 -0
  202. data/webby/output/examples/formatting.rb +78 -0
  203. data/webby/output/examples/formatting.xls +0 -0
  204. data/webby/output/examples/hello-world.png +0 -0
  205. data/webby/output/examples/hello-world.py +8 -0
  206. data/webby/output/examples/hello-world.rb +9 -0
  207. data/webby/output/examples/hello-world.xls +0 -0
  208. data/webby/output/examples/number-format-string.png +0 -0
  209. data/webby/output/examples/number-format-string.rb +14 -0
  210. data/webby/output/examples/number-format-string.xls +0 -0
  211. data/webby/output/examples/patterns.png +0 -0
  212. data/webby/output/examples/patterns.rb +26 -0
  213. data/webby/output/examples/patterns.xls +0 -0
  214. data/webby/output/examples/show-greens.sh +1 -0
  215. data/webby/output/examples/surpass-info.sh +1 -0
  216. data/webby/output/img/Thumbs.db +0 -0
  217. data/webby/output/img/bg_menu.gif +0 -0
  218. data/webby/output/img/bg_t.gif +0 -0
  219. data/webby/output/img/bullet.gif +0 -0
  220. data/webby/output/img/logo.png +0 -0
  221. data/webby/output/img/logo_.jpg +0 -0
  222. data/webby/output/img/top_bg.gif +0 -0
  223. data/webby/output/img/top_bg_.gif +0 -0
  224. data/webby/output/index.html +138 -0
  225. data/webby/output/installation/index.html +64 -0
  226. data/webby/output/installation/installation.html +1 -0
  227. data/webby/output/installation.html +1 -0
  228. data/webby/output/source/ExcelFormulaLexer.html +981 -0
  229. data/webby/output/source/ExcelFormulaParser.html +661 -0
  230. data/webby/output/source/biff_record.html +462 -0
  231. data/webby/output/source/bitmap.html +277 -0
  232. data/webby/output/source/cell.html +241 -0
  233. data/webby/output/source/chart.html +64 -0
  234. data/webby/output/source/column.html +99 -0
  235. data/webby/output/source/document.html +465 -0
  236. data/webby/output/source/excel_formula.html +82 -0
  237. data/webby/output/source/excel_magic.html +1072 -0
  238. data/webby/output/source/formatting.html +664 -0
  239. data/webby/output/source/row.html +169 -0
  240. data/webby/output/source/style.html +158 -0
  241. data/webby/output/source/surpass.html +110 -0
  242. data/webby/output/source/utilities.html +145 -0
  243. data/webby/output/source/workbook.html +265 -0
  244. data/webby/output/source/worksheet.html +331 -0
  245. data/webby/output/surpass-manual-0-0-5.pdf +0 -0
  246. data/webby/output/surpass-manual.aux +50 -0
  247. data/webby/output/surpass-manual.log +366 -0
  248. data/webby/output/surpass-manual.out +20 -0
  249. data/webby/output/surpass-manual.tex +582 -0
  250. data/webby/output/surpass-manual.toc +20 -0
  251. data/webby/rsync-exclude +7 -0
  252. data/webby/tasks/latex.rake +14 -0
  253. data/webby/tasks/screenshots.rb +58 -0
  254. data/webby/templates/article.erb +15 -0
  255. data/webby/templates/book.erb +16 -0
  256. data/webby/templates/page.erb +9 -0
  257. metadata +302 -24
  258. data/bin/surpass-info +0 -20
  259. data/lib/excel_formula.rb +0 -6
@@ -0,0 +1,241 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+
3
+ <!-- ========================================================== -->
4
+ <!-- Created by Devit Schizoper -->
5
+ <!-- Created HomePages http://LoadFoo.starzonewebhost.com -->
6
+ <!-- Created Day 01.12.2006 -->
7
+ <!-- ========================================================== -->
8
+
9
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
10
+ <head>
11
+ <meta http-equiv="content-type" content="text/html;charset=utf-8" />
12
+ <meta name="author" content="LoadFoO" />
13
+ <meta name="description" content="Site description" />
14
+ <meta name="keywords" content="key, words" />
15
+ <title>Surpass :: cell.rb</title>
16
+ <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
17
+ <link rel="stylesheet" href="/css/pygments.css" type="text/css" />
18
+ <link rel="shortcut icon" href="favicon.ico" />
19
+ </head>
20
+
21
+ <body>
22
+ <div id="wrap">
23
+ <div id="top">
24
+ <h2><a href="/" title="Back to main page">Surpass</a></h2>
25
+ <div id="menu">
26
+ <ul>
27
+ <li><a href="/installation">Installation</a></li>
28
+ <li><a href="/examples">Examples</a></li>
29
+ <li><a href="/source">Source</a></li>
30
+ </ul>
31
+ </div>
32
+ </div>
33
+ <div id="content">
34
+ <div id="left">
35
+ <h2>cell.rb</h2>
36
+ <div class="highlight"><pre><span class="k">class</span> <span class="nc">Cell</span>
37
+ <span class="kp">attr_reader</span> <span class="ss">:index</span>
38
+
39
+ <span class="k">def</span> <span class="nf">set_style</span><span class="p">(</span><span class="n">style</span><span class="p">)</span>
40
+ <span class="n">style</span> <span class="o">=</span> <span class="no">StyleFormat</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">style</span><span class="p">)</span> <span class="k">if</span> <span class="n">style</span><span class="o">.</span><span class="n">is_a?</span><span class="p">(</span><span class="no">Hash</span><span class="p">)</span>
41
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="vi">@parent</span><span class="o">.</span><span class="n">parent_wb</span><span class="o">.</span><span class="n">styles</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">style</span><span class="p">)</span>
42
+ <span class="k">end</span>
43
+
44
+ <span class="k">def</span> <span class="nf">row</span>
45
+ <span class="vi">@parent</span>
46
+ <span class="k">end</span>
47
+
48
+ <span class="k">def</span> <span class="nf">col</span>
49
+ <span class="vi">@index</span>
50
+ <span class="k">end</span>
51
+ <span class="k">end</span>
52
+
53
+ <span class="k">class</span> <span class="nc">StringCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
54
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">format_index</span><span class="p">,</span> <span class="n">sst_index</span><span class="p">)</span>
55
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
56
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
57
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="n">format_index</span>
58
+ <span class="vi">@sst_index</span> <span class="o">=</span> <span class="n">sst_index</span>
59
+ <span class="k">end</span>
60
+
61
+ <span class="k">def</span> <span class="nf">to_biff</span>
62
+ <span class="no">LabelSSTRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@format_index</span><span class="p">,</span> <span class="vi">@sst_index</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
63
+ <span class="k">end</span>
64
+ <span class="k">end</span>
65
+
66
+ <span class="k">class</span> <span class="nc">BlankCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
67
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">format_index</span><span class="p">)</span>
68
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
69
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
70
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="n">format_index</span>
71
+ <span class="k">end</span>
72
+
73
+ <span class="k">def</span> <span class="nf">to_biff</span>
74
+ <span class="no">BlankRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@format_index</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
75
+ <span class="k">end</span>
76
+ <span class="k">end</span>
77
+
78
+ <span class="k">class</span> <span class="nc">NumberCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
79
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">format_index</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span>
80
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
81
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
82
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="n">format_index</span>
83
+ <span class="vi">@number</span> <span class="o">=</span> <span class="n">number</span>
84
+ <span class="k">end</span>
85
+
86
+ <span class="k">def</span> <span class="nf">rk_record</span><span class="p">(</span><span class="n">rk_encoded</span><span class="p">)</span>
87
+ <span class="no">RKRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@format_index</span><span class="p">,</span> <span class="n">rk_encoded</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
88
+ <span class="k">end</span>
89
+
90
+ <span class="c1"># TODO test this section to be sure numbers are categorized and packed correctly.</span>
91
+ <span class="k">def</span> <span class="nf">to_biff</span>
92
+ <span class="c1"># 30 bit signed int</span>
93
+ <span class="n">in_range</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="mh">0x20000000</span> <span class="o">&lt;=</span> <span class="vi">@number</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="vi">@number</span> <span class="o">&lt;</span> <span class="mh">0x20000000</span><span class="p">)</span>
94
+ <span class="n">is_int</span> <span class="o">=</span> <span class="p">(</span><span class="vi">@number</span><span class="o">.</span><span class="n">to_i</span> <span class="o">==</span> <span class="vi">@number</span><span class="p">)</span>
95
+ <span class="k">if</span> <span class="n">in_range</span> <span class="o">&amp;&amp;</span> <span class="n">is_int</span>
96
+ <span class="n">rk_encoded</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">|</span> <span class="p">(</span><span class="vi">@number</span><span class="o">.</span><span class="n">to_i</span> <span class="o">&lt;&lt;</span> <span class="mi">2</span><span class="p">)</span>
97
+ <span class="k">return</span> <span class="n">rk_record</span><span class="p">(</span><span class="n">rk_encoded</span><span class="p">)</span>
98
+ <span class="k">end</span>
99
+
100
+ <span class="c1"># try scaling by 100 then using a 30 bit signed int</span>
101
+ <span class="n">in_range</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="mh">0x20000000</span> <span class="o">&lt;=</span> <span class="vi">@number</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="vi">@number</span> <span class="o">*</span> <span class="mi">100</span> <span class="o">&lt;</span> <span class="mh">0x20000000</span><span class="p">)</span>
102
+ <span class="n">round_trip</span> <span class="o">=</span> <span class="p">(</span><span class="vi">@number</span><span class="o">.</span><span class="n">to_i</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span> <span class="o">==</span> <span class="vi">@number</span><span class="o">*</span><span class="mi">100</span>
103
+ <span class="k">if</span> <span class="n">in_range</span> <span class="o">&amp;&amp;</span> <span class="n">round_trip</span>
104
+ <span class="n">rk_encoded</span> <span class="o">=</span> <span class="p">(</span><span class="mi">3</span> <span class="o">|</span> <span class="p">(</span><span class="vi">@number</span><span class="o">.</span><span class="n">to_i</span><span class="o">*</span><span class="mi">100</span> <span class="o">&lt;&lt;</span> <span class="mi">2</span><span class="p">))</span>
105
+ <span class="k">return</span> <span class="n">rk_record</span><span class="p">(</span><span class="n">rk_encoded</span><span class="p">)</span>
106
+ <span class="k">end</span>
107
+
108
+ <span class="n">w0</span><span class="p">,</span> <span class="n">w1</span><span class="p">,</span> <span class="n">w2</span><span class="p">,</span> <span class="n">w3</span> <span class="o">=</span> <span class="o">[</span><span class="vi">@number</span><span class="o">].</span><span class="n">pack</span><span class="p">(</span><span class="s1">&#39;E&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;v4&#39;</span><span class="p">)</span>
109
+
110
+ <span class="n">is_float_rk</span> <span class="o">=</span> <span class="p">(</span><span class="n">w0</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">w1</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">w2</span> <span class="o">&amp;</span> <span class="mh">0xFFFC</span><span class="p">)</span> <span class="o">==</span> <span class="n">w2</span>
111
+ <span class="k">if</span> <span class="n">is_float_rk</span>
112
+ <span class="n">rk_encoded</span> <span class="o">=</span> <span class="p">(</span><span class="n">w3</span> <span class="o">&lt;&lt;</span> <span class="mi">16</span><span class="p">)</span> <span class="o">|</span> <span class="n">w2</span>
113
+ <span class="k">return</span> <span class="n">rk_record</span><span class="p">(</span><span class="n">rk_encoded</span><span class="p">)</span>
114
+ <span class="k">end</span>
115
+
116
+ <span class="n">w0</span><span class="p">,</span> <span class="n">w1</span><span class="p">,</span> <span class="n">w2</span><span class="p">,</span> <span class="n">w3</span> <span class="o">=</span> <span class="o">[</span><span class="vi">@number</span> <span class="o">*</span> <span class="mi">100</span><span class="o">].</span><span class="n">pack</span><span class="p">(</span><span class="s1">&#39;E&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;v4&#39;</span><span class="p">)</span>
117
+
118
+ <span class="n">is_float_rk_100</span> <span class="o">=</span> <span class="n">w0</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">w1</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">w2</span> <span class="o">&amp;</span> <span class="mh">0xFFFC</span> <span class="o">==</span> <span class="n">w2</span>
119
+ <span class="k">if</span> <span class="n">is_float_rk_100</span>
120
+ <span class="n">rk_encoded</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">|</span> <span class="p">(</span><span class="n">w3</span> <span class="o">&lt;&lt;</span> <span class="mi">16</span><span class="p">)</span> <span class="o">|</span> <span class="n">w2</span>
121
+ <span class="k">return</span> <span class="n">rk_record</span><span class="p">(</span><span class="n">rk_encoded</span><span class="p">)</span>
122
+ <span class="k">end</span>
123
+
124
+ <span class="c1"># If not an RK value, use a NumberRecord instead.</span>
125
+ <span class="no">NumberRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@format_index</span><span class="p">,</span> <span class="vi">@number</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
126
+ <span class="k">end</span>
127
+ <span class="k">end</span>
128
+
129
+ <span class="k">class</span> <span class="nc">MulNumberCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
130
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">format_index</span><span class="p">,</span> <span class="n">sst_index</span><span class="p">)</span>
131
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
132
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
133
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="n">format_index</span>
134
+ <span class="vi">@sst_index</span> <span class="o">=</span> <span class="n">sst_index</span>
135
+ <span class="k">end</span>
136
+
137
+ <span class="k">def</span> <span class="nf">to_biff</span>
138
+ <span class="k">raise</span> <span class="s2">&quot;not implemented&quot;</span>
139
+ <span class="k">end</span>
140
+ <span class="k">end</span>
141
+
142
+ <span class="k">class</span> <span class="nc">MulBlankCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
143
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">col1</span><span class="p">,</span> <span class="n">col2</span><span class="p">,</span> <span class="n">xf_idx</span><span class="p">)</span>
144
+ <span class="k">raise</span> <span class="k">unless</span> <span class="n">col1</span> <span class="o">&lt;</span> <span class="n">col2</span>
145
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
146
+ <span class="vi">@col1</span> <span class="o">=</span> <span class="n">col1</span>
147
+ <span class="vi">@col2</span> <span class="o">=</span> <span class="n">col2</span>
148
+ <span class="vi">@xf_idx</span> <span class="o">=</span> <span class="n">xf_idx</span>
149
+ <span class="k">end</span>
150
+
151
+ <span class="k">def</span> <span class="nf">to_biff</span>
152
+ <span class="no">MulBlankRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@col1</span><span class="p">,</span> <span class="vi">@col2</span><span class="p">,</span> <span class="vi">@xf_idx</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
153
+ <span class="k">end</span>
154
+ <span class="k">end</span>
155
+
156
+ <span class="k">class</span> <span class="nc">FormulaCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
157
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">format_index</span><span class="p">,</span> <span class="n">formula</span><span class="p">,</span> <span class="n">calc_flags</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span>
158
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
159
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
160
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="n">format_index</span>
161
+ <span class="vi">@formula</span> <span class="o">=</span> <span class="n">formula</span>
162
+ <span class="vi">@calc_flags</span> <span class="o">=</span> <span class="n">calc_flags</span>
163
+ <span class="k">end</span>
164
+
165
+ <span class="k">def</span> <span class="nf">to_biff</span>
166
+ <span class="n">args</span> <span class="o">=</span> <span class="o">[</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@format_index</span><span class="p">,</span> <span class="vi">@formula</span><span class="o">.</span><span class="n">to_biff</span><span class="p">,</span> <span class="vi">@calc_flags</span><span class="o">]</span>
167
+ <span class="no">FormulaRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
168
+ <span class="k">end</span>
169
+ <span class="k">end</span>
170
+
171
+ <span class="k">class</span> <span class="nc">BooleanCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
172
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">format_index</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span>
173
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
174
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
175
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="n">format_index</span>
176
+ <span class="vi">@number</span> <span class="o">=</span> <span class="n">number</span>
177
+ <span class="vi">@is_error</span> <span class="o">=</span> <span class="mi">0</span>
178
+ <span class="k">end</span>
179
+
180
+ <span class="k">def</span> <span class="nf">to_biff</span>
181
+ <span class="n">number</span> <span class="o">=</span> <span class="vi">@number</span> <span class="p">?</span> <span class="mi">1</span> <span class="p">:</span> <span class="mi">0</span>
182
+ <span class="no">BoolErrRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@format_index</span><span class="p">,</span> <span class="n">number</span><span class="p">,</span> <span class="vi">@is_error</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
183
+ <span class="k">end</span>
184
+ <span class="k">end</span>
185
+
186
+ <span class="k">class</span> <span class="nc">ErrorCell</span> <span class="o">&lt;</span> <span class="no">Cell</span>
187
+ <span class="no">ERROR_CODES</span> <span class="o">=</span> <span class="p">{</span>
188
+ <span class="mh">0x00</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># Intersection of two cell ranges is empty</span>
189
+ <span class="mh">0x07</span> <span class="o">=&gt;</span> <span class="mi">7</span><span class="p">,</span> <span class="c1"># Division by zero</span>
190
+ <span class="mh">0x0F</span> <span class="o">=&gt;</span> <span class="mi">15</span><span class="p">,</span> <span class="c1"># Wrong type of operand</span>
191
+ <span class="mh">0x17</span> <span class="o">=&gt;</span> <span class="mi">23</span><span class="p">,</span> <span class="c1"># Illegal or deleted cell reference</span>
192
+ <span class="mh">0x1D</span> <span class="o">=&gt;</span> <span class="mi">29</span><span class="p">,</span> <span class="c1"># Wrong function or range name</span>
193
+ <span class="mh">0x24</span> <span class="o">=&gt;</span> <span class="mi">36</span><span class="p">,</span> <span class="c1"># Value range overflow</span>
194
+ <span class="mh">0x2A</span> <span class="o">=&gt;</span> <span class="mi">42</span><span class="p">,</span> <span class="c1"># Argument or function not available</span>
195
+ <span class="s1">&#39;#NULL!&#39;</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># Intersection of two cell ranges is empty</span>
196
+ <span class="s1">&#39;#DIV/0!&#39;</span> <span class="o">=&gt;</span> <span class="mi">7</span><span class="p">,</span> <span class="c1"># Division by zero</span>
197
+ <span class="s1">&#39;#VALUE!&#39;</span> <span class="o">=&gt;</span> <span class="mi">36</span><span class="p">,</span> <span class="c1"># Wrong type of operand</span>
198
+ <span class="s1">&#39;#REF!&#39;</span> <span class="o">=&gt;</span> <span class="mi">23</span><span class="p">,</span> <span class="c1"># Illegal or deleted cell reference</span>
199
+ <span class="s1">&#39;#NAME?&#39;</span> <span class="o">=&gt;</span> <span class="mi">29</span><span class="p">,</span> <span class="c1"># Wrong function or range name</span>
200
+ <span class="s1">&#39;#NUM!&#39;</span> <span class="o">=&gt;</span> <span class="mi">36</span><span class="p">,</span> <span class="c1"># Value range overflow</span>
201
+ <span class="s1">&#39;#N/A!&#39;</span> <span class="o">=&gt;</span> <span class="mi">42</span> <span class="c1"># Argument or function not available</span>
202
+ <span class="p">}</span>
203
+
204
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">format_index</span><span class="p">,</span> <span class="n">error_string_or_code</span><span class="p">)</span>
205
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
206
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
207
+ <span class="vi">@format_index</span> <span class="o">=</span> <span class="n">format_index</span>
208
+ <span class="vi">@number</span> <span class="o">=</span> <span class="no">ERROR_CODES</span><span class="o">[</span><span class="n">error_string_or_code</span><span class="o">]</span>
209
+ <span class="vi">@is_error</span> <span class="o">=</span> <span class="mi">1</span>
210
+
211
+ <span class="k">raise</span> <span class="s2">&quot;invalid error code </span><span class="si">#{</span><span class="n">error_string_or_code</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="vi">@number</span><span class="o">.</span><span class="n">nil?</span>
212
+ <span class="k">end</span>
213
+
214
+ <span class="k">def</span> <span class="nf">to_biff</span>
215
+ <span class="no">BoolErrRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@parent</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@format_index</span><span class="p">,</span> <span class="vi">@number</span><span class="p">,</span> <span class="vi">@is_error</span><span class="p">)</span>
216
+ <span class="k">end</span>
217
+ <span class="k">end</span>
218
+ </pre></div>
219
+
220
+
221
+ </div>
222
+ <div id="right">
223
+ <ul id="nav">
224
+ <li><a href="surpass-manual-0-0-5.pdf">Download PDF Manual</a></li>
225
+ <li><a href="http://rubyforge.org/projects/surpass">Rubyforge Project Page</a></li>
226
+ </ul>
227
+ <div class="box">
228
+ <h2 style="margin-top:17px">Latest News</h2>
229
+ <ul>
230
+ <li>...</li>
231
+ </ul>
232
+ </div>
233
+ </div>
234
+ <div id="clear"></div></div>
235
+ <div id="footer">
236
+ <p>Site template designed by <a href="http://loadfoo.org/" rel="external">LoadFoO</a>. Valid <a href="http://jigsaw.w3.org/css-validator/check/referer" rel="external">CSS</a> &amp; <a href="http://validator.w3.org/check?uri=referer" rel="external">XHTML</a></p>
237
+ </div>
238
+ </div>
239
+
240
+ </body>
241
+ </html>
@@ -0,0 +1,64 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+
3
+ <!-- ========================================================== -->
4
+ <!-- Created by Devit Schizoper -->
5
+ <!-- Created HomePages http://LoadFoo.starzonewebhost.com -->
6
+ <!-- Created Day 01.12.2006 -->
7
+ <!-- ========================================================== -->
8
+
9
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
10
+ <head>
11
+ <meta http-equiv="content-type" content="text/html;charset=utf-8" />
12
+ <meta name="author" content="LoadFoO" />
13
+ <meta name="description" content="Site description" />
14
+ <meta name="keywords" content="key, words" />
15
+ <title>Surpass :: chart.rb</title>
16
+ <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
17
+ <link rel="stylesheet" href="/css/pygments.css" type="text/css" />
18
+ <link rel="shortcut icon" href="favicon.ico" />
19
+ </head>
20
+
21
+ <body>
22
+ <div id="wrap">
23
+ <div id="top">
24
+ <h2><a href="/" title="Back to main page">Surpass</a></h2>
25
+ <div id="menu">
26
+ <ul>
27
+ <li><a href="/installation">Installation</a></li>
28
+ <li><a href="/examples">Examples</a></li>
29
+ <li><a href="/source">Source</a></li>
30
+ </ul>
31
+ </div>
32
+ </div>
33
+ <div id="content">
34
+ <div id="left">
35
+ <h2>chart.rb</h2>
36
+ <div class="highlight"><pre><span class="k">class</span> <span class="nc">Chart</span>
37
+ <span class="k">def</span> <span class="nf">initialize</span>
38
+ <span class="k">raise</span> <span class="s2">&quot;not implemented&quot;</span>
39
+ <span class="k">end</span>
40
+
41
+
42
+
43
+
44
+ </div>
45
+ <div id="right">
46
+ <ul id="nav">
47
+ <li><a href="surpass-manual-0-0-5.pdf">Download PDF Manual</a></li>
48
+ <li><a href="http://rubyforge.org/projects/surpass">Rubyforge Project Page</a></li>
49
+ </ul>
50
+ <div class="box">
51
+ <h2 style="margin-top:17px">Latest News</h2>
52
+ <ul>
53
+ <li>...</li>
54
+ </ul>
55
+ </div>
56
+ </div>
57
+ <div id="clear"></div></div>
58
+ <div id="footer">
59
+ <p>Site template designed by <a href="http://loadfoo.org/" rel="external">LoadFoO</a>. Valid <a href="http://jigsaw.w3.org/css-validator/check/referer" rel="external">CSS</a> &amp; <a href="http://validator.w3.org/check?uri=referer" rel="external">XHTML</a></p>
60
+ </div>
61
+ </div>
62
+
63
+ </body>
64
+ </html>
@@ -0,0 +1,99 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+
3
+ <!-- ========================================================== -->
4
+ <!-- Created by Devit Schizoper -->
5
+ <!-- Created HomePages http://LoadFoo.starzonewebhost.com -->
6
+ <!-- Created Day 01.12.2006 -->
7
+ <!-- ========================================================== -->
8
+
9
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
10
+ <head>
11
+ <meta http-equiv="content-type" content="text/html;charset=utf-8" />
12
+ <meta name="author" content="LoadFoO" />
13
+ <meta name="description" content="Site description" />
14
+ <meta name="keywords" content="key, words" />
15
+ <title>Surpass :: column.rb</title>
16
+ <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
17
+ <link rel="stylesheet" href="/css/pygments.css" type="text/css" />
18
+ <link rel="shortcut icon" href="favicon.ico" />
19
+ </head>
20
+
21
+ <body>
22
+ <div id="wrap">
23
+ <div id="top">
24
+ <h2><a href="/" title="Back to main page">Surpass</a></h2>
25
+ <div id="menu">
26
+ <ul>
27
+ <li><a href="/installation">Installation</a></li>
28
+ <li><a href="/examples">Examples</a></li>
29
+ <li><a href="/source">Source</a></li>
30
+ </ul>
31
+ </div>
32
+ </div>
33
+ <div id="content">
34
+ <div id="left">
35
+ <h2>column.rb</h2>
36
+ <div class="highlight"><pre><span class="k">class</span> <span class="nc">Column</span>
37
+ <span class="kp">attr_accessor</span> <span class="ss">:index</span>
38
+ <span class="kp">attr_accessor</span> <span class="ss">:width</span>
39
+ <span class="kp">attr_accessor</span> <span class="ss">:hidden</span>
40
+ <span class="kp">attr_accessor</span> <span class="ss">:level</span>
41
+ <span class="kp">attr_accessor</span> <span class="ss">:collapse</span>
42
+
43
+ <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
44
+ <span class="n">is_int</span> <span class="o">=</span> <span class="n">index</span><span class="o">.</span><span class="n">is_a?</span><span class="p">(</span><span class="nb">Integer</span><span class="p">)</span>
45
+ <span class="n">in_range</span> <span class="o">=</span> <span class="p">(</span><span class="n">index</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">index</span> <span class="o">&lt;=</span> <span class="mi">255</span><span class="p">)</span>
46
+ <span class="k">raise</span> <span class="s2">&quot;column index </span><span class="si">#{</span><span class="n">index</span><span class="si">}</span><span class="s2"> is not valid&quot;</span> <span class="k">unless</span> <span class="n">is_int</span> <span class="o">&amp;&amp;</span> <span class="n">in_range</span>
47
+
48
+ <span class="vi">@index</span> <span class="o">=</span> <span class="n">index</span>
49
+ <span class="vi">@parent</span> <span class="o">=</span> <span class="n">parent</span>
50
+ <span class="vi">@parent_wb</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
51
+ <span class="vi">@xf_index</span> <span class="o">=</span> <span class="mh">0x0F</span>
52
+
53
+ <span class="vi">@width</span> <span class="o">=</span> <span class="mh">0x0B92</span>
54
+ <span class="vi">@hidden</span> <span class="o">=</span> <span class="mi">0</span>
55
+ <span class="vi">@level</span> <span class="o">=</span> <span class="mi">0</span>
56
+ <span class="vi">@collapse</span> <span class="o">=</span> <span class="mi">0</span>
57
+ <span class="k">end</span>
58
+
59
+ <span class="k">def</span> <span class="nf">to_biff</span>
60
+ <span class="n">options</span> <span class="o">=</span> <span class="p">(</span><span class="n">as_numeric</span><span class="p">(</span><span class="vi">@hidden</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x01</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="mi">0</span>
61
+ <span class="n">options</span> <span class="o">|=</span> <span class="p">(</span><span class="vi">@level</span> <span class="o">&amp;</span> <span class="mh">0x07</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span>
62
+ <span class="n">options</span> <span class="o">|=</span> <span class="p">(</span><span class="n">as_numeric</span><span class="p">(</span><span class="vi">@collapse</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x01</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="mi">12</span>
63
+
64
+ <span class="no">ColInfoRecord</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="vi">@index</span><span class="p">,</span> <span class="vi">@index</span><span class="p">,</span> <span class="vi">@width</span><span class="p">,</span> <span class="vi">@xf_index</span><span class="p">,</span> <span class="n">options</span><span class="p">)</span><span class="o">.</span><span class="n">to_biff</span>
65
+ <span class="k">end</span>
66
+
67
+ <span class="k">def</span> <span class="nf">set_style</span><span class="p">(</span><span class="n">style</span><span class="p">)</span>
68
+ <span class="vi">@xf_index</span> <span class="o">=</span> <span class="vi">@parent_wb</span><span class="o">.</span><span class="n">add_style</span><span class="p">(</span><span class="n">style</span><span class="p">)</span>
69
+ <span class="k">end</span>
70
+
71
+ <span class="k">def</span> <span class="nf">width_in_pixels</span>
72
+ <span class="c1"># *** Approximation ****</span>
73
+ <span class="p">(</span><span class="nb">self</span><span class="o">.</span><span class="n">width</span> <span class="o">*</span> <span class="mi">0</span><span class="o">.</span><span class="mo">0272</span> <span class="o">+</span> <span class="mi">0</span><span class="o">.</span><span class="mi">446</span><span class="p">)</span><span class="o">.</span><span class="n">round</span>
74
+ <span class="k">end</span>
75
+ <span class="k">end</span>
76
+ </pre></div>
77
+
78
+
79
+ </div>
80
+ <div id="right">
81
+ <ul id="nav">
82
+ <li><a href="surpass-manual-0-0-5.pdf">Download PDF Manual</a></li>
83
+ <li><a href="http://rubyforge.org/projects/surpass">Rubyforge Project Page</a></li>
84
+ </ul>
85
+ <div class="box">
86
+ <h2 style="margin-top:17px">Latest News</h2>
87
+ <ul>
88
+ <li>...</li>
89
+ </ul>
90
+ </div>
91
+ </div>
92
+ <div id="clear"></div></div>
93
+ <div id="footer">
94
+ <p>Site template designed by <a href="http://loadfoo.org/" rel="external">LoadFoO</a>. Valid <a href="http://jigsaw.w3.org/css-validator/check/referer" rel="external">CSS</a> &amp; <a href="http://validator.w3.org/check?uri=referer" rel="external">XHTML</a></p>
95
+ </div>
96
+ </div>
97
+
98
+ </body>
99
+ </html>