ripxplore 0.14.0 → 0.14.1

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 (251) hide show
  1. data/doc/classes/A2DskDosOrder.html +5 -5
  2. data/doc/classes/A2DskDosOrder.src/M000535.html +18 -0
  3. data/doc/classes/AppleCPM.html +40 -40
  4. data/doc/classes/AppleCPM.src/M000413.html +4 -4
  5. data/doc/classes/AppleCPM.src/M000414.html +5 -8
  6. data/doc/classes/AppleCPM.src/M000415.html +7 -9
  7. data/doc/classes/AppleCPM.src/M000416.html +10 -27
  8. data/doc/classes/AppleCPM.src/M000417.html +16 -11
  9. data/doc/classes/AppleCPM.src/M000418.html +21 -43
  10. data/doc/classes/AppleCPM.src/M000419.html +37 -10
  11. data/doc/classes/AppleCPM.src/M000420.html +30 -0
  12. data/doc/classes/AppleHiResPic.html +40 -40
  13. data/doc/classes/AppleHiResPic.src/M000473.html +5 -5
  14. data/doc/classes/AppleHiResPic.src/M000474.html +4 -4
  15. data/doc/classes/AppleHiResPic.src/M000475.html +4 -38
  16. data/doc/classes/AppleHiResPic.src/M000476.html +38 -4
  17. data/doc/classes/AppleHiResPic.src/M000477.html +4 -4
  18. data/doc/classes/AppleHiResPic.src/M000478.html +4 -4
  19. data/doc/classes/AppleHiResPic.src/M000479.html +4 -4
  20. data/doc/classes/AppleHiResPic.src/M000480.html +18 -0
  21. data/doc/classes/ApplePrintShopMiniPix.html +20 -20
  22. data/doc/classes/ApplePrintShopMiniPix.src/M000570.html +24 -4
  23. data/doc/classes/ApplePrintShopMiniPix.src/M000571.html +4 -4
  24. data/doc/classes/ApplePrintShopMiniPix.src/M000572.html +4 -4
  25. data/doc/classes/ApplePrintShopMiniPix.src/M000573.html +18 -0
  26. data/doc/classes/AppleWorksWP.html +10 -10
  27. data/doc/classes/AppleWorksWP.src/M000536.html +6 -31
  28. data/doc/classes/AppleWorksWP.src/M000537.html +45 -0
  29. data/doc/classes/Applesoft.html +10 -10
  30. data/doc/classes/Applesoft.src/M000436.html +8 -62
  31. data/doc/classes/Applesoft.src/M000437.html +75 -0
  32. data/doc/classes/AtariDos.html +10 -10
  33. data/doc/classes/AtariDos.src/M000425.html +4 -29
  34. data/doc/classes/AtariDos.src/M000426.html +43 -0
  35. data/doc/classes/C64.html +105 -105
  36. data/doc/classes/C64.src/M000549.html +4 -4
  37. data/doc/classes/C64.src/M000550.html +4 -17
  38. data/doc/classes/C64.src/M000551.html +17 -6
  39. data/doc/classes/C64.src/M000552.html +6 -8
  40. data/doc/classes/C64.src/M000553.html +4 -4
  41. data/doc/classes/C64.src/M000554.html +8 -5
  42. data/doc/classes/C64.src/M000555.html +5 -5
  43. data/doc/classes/C64.src/M000556.html +5 -4
  44. data/doc/classes/C64.src/M000557.html +4 -4
  45. data/doc/classes/C64.src/M000558.html +4 -4
  46. data/doc/classes/C64.src/M000559.html +4 -4
  47. data/doc/classes/C64.src/M000560.html +3 -3
  48. data/doc/classes/C64.src/M000561.html +4 -4
  49. data/doc/classes/C64.src/M000562.html +3 -3
  50. data/doc/classes/C64.src/M000563.html +4 -5
  51. data/doc/classes/C64.src/M000564.html +5 -5
  52. data/doc/classes/C64.src/M000565.html +5 -4
  53. data/doc/classes/C64.src/M000566.html +3 -3
  54. data/doc/classes/C64.src/M000567.html +4 -55
  55. data/doc/classes/C64.src/M000568.html +22 -66
  56. data/doc/classes/C64.src/M000569.html +113 -0
  57. data/doc/classes/C64GeoPaintPic.html +30 -30
  58. data/doc/classes/C64GeoPaintPic.src/M000430.html +4 -4
  59. data/doc/classes/C64GeoPaintPic.src/M000431.html +4 -4
  60. data/doc/classes/C64GeoPaintPic.src/M000432.html +4 -57
  61. data/doc/classes/C64GeoPaintPic.src/M000433.html +55 -27
  62. data/doc/classes/C64GeoPaintPic.src/M000434.html +29 -6
  63. data/doc/classes/C64GeoPaintPic.src/M000435.html +20 -0
  64. data/doc/classes/C64GeosBASICFile.src/M000305.html +1 -1
  65. data/doc/classes/C64PhotoScrap.html +70 -70
  66. data/doc/classes/C64PhotoScrap.src/M000458.html +4 -4
  67. data/doc/classes/C64PhotoScrap.src/M000459.html +4 -4
  68. data/doc/classes/C64PhotoScrap.src/M000460.html +4 -4
  69. data/doc/classes/C64PhotoScrap.src/M000461.html +4 -4
  70. data/doc/classes/C64PhotoScrap.src/M000462.html +4 -4
  71. data/doc/classes/C64PhotoScrap.src/M000463.html +4 -4
  72. data/doc/classes/C64PhotoScrap.src/M000464.html +4 -7
  73. data/doc/classes/C64PhotoScrap.src/M000465.html +7 -4
  74. data/doc/classes/C64PhotoScrap.src/M000466.html +4 -4
  75. data/doc/classes/C64PhotoScrap.src/M000467.html +4 -4
  76. data/doc/classes/C64PhotoScrap.src/M000468.html +5 -40
  77. data/doc/classes/C64PhotoScrap.src/M000469.html +36 -28
  78. data/doc/classes/C64PhotoScrap.src/M000470.html +30 -9
  79. data/doc/classes/C64PhotoScrap.src/M000471.html +24 -0
  80. data/doc/classes/C64Seq.html +15 -15
  81. data/doc/classes/C64Seq.src/M000410.html +6 -4
  82. data/doc/classes/C64Seq.src/M000411.html +4 -4
  83. data/doc/classes/C64Seq.src/M000412.html +18 -0
  84. data/doc/classes/CVT.html +10 -10
  85. data/doc/classes/CVT.src/M000514.html +4 -4
  86. data/doc/classes/CVT.src/M000515.html +18 -0
  87. data/doc/classes/CVTArchive.html +12 -12
  88. data/doc/classes/CVTArchive.src/M000399.html +4 -56
  89. data/doc/classes/CVTArchive.src/M000400.html +70 -0
  90. data/doc/classes/CbmDos.src/M000099.html +4 -0
  91. data/doc/classes/CbmDos.src/M000100.html +1 -1
  92. data/doc/classes/CbmDos.src/M000101.html +1 -1
  93. data/doc/classes/CbmDos.src/M000102.html +1 -1
  94. data/doc/classes/CbmDos.src/M000103.html +1 -1
  95. data/doc/classes/CbmDos.src/M000104.html +1 -1
  96. data/doc/classes/CbmDos.src/M000105.html +1 -1
  97. data/doc/classes/CbmDos.src/M000106.html +1 -1
  98. data/doc/classes/CbmDos.src/M000107.html +1 -1
  99. data/doc/classes/Coco.html +65 -65
  100. data/doc/classes/Coco.src/M000483.html +4 -4
  101. data/doc/classes/Coco.src/M000484.html +4 -4
  102. data/doc/classes/Coco.src/M000485.html +4 -4
  103. data/doc/classes/Coco.src/M000486.html +4 -4
  104. data/doc/classes/Coco.src/M000487.html +4 -4
  105. data/doc/classes/Coco.src/M000488.html +3 -3
  106. data/doc/classes/Coco.src/M000489.html +4 -4
  107. data/doc/classes/Coco.src/M000490.html +4 -4
  108. data/doc/classes/Coco.src/M000491.html +4 -4
  109. data/doc/classes/Coco.src/M000492.html +4 -4
  110. data/doc/classes/Coco.src/M000493.html +4 -4
  111. data/doc/classes/Coco.src/M000494.html +4 -41
  112. data/doc/classes/Coco.src/M000495.html +55 -0
  113. data/doc/classes/CocoBasic.html +10 -10
  114. data/doc/classes/CocoBasic.src/M000428.html +6 -58
  115. data/doc/classes/CocoBasic.src/M000429.html +72 -0
  116. data/doc/classes/D81.html +45 -45
  117. data/doc/classes/D81.src/M000438.html +4 -4
  118. data/doc/classes/D81.src/M000439.html +4 -4
  119. data/doc/classes/D81.src/M000440.html +4 -4
  120. data/doc/classes/D81.src/M000441.html +4 -4
  121. data/doc/classes/D81.src/M000442.html +4 -4
  122. data/doc/classes/D81.src/M000443.html +4 -4
  123. data/doc/classes/D81.src/M000444.html +4 -9
  124. data/doc/classes/D81.src/M000445.html +7 -8
  125. data/doc/classes/D81.src/M000446.html +24 -0
  126. data/doc/classes/FileCache.html +15 -0
  127. data/doc/classes/FileCache.src/M000398.html +20 -0
  128. data/doc/classes/FileContainer.html +5 -5
  129. data/doc/classes/FileContainer.src/M000472.html +26 -0
  130. data/doc/classes/FileSystem.html +41 -41
  131. data/doc/classes/FileSystem.src/M000447.html +4 -4
  132. data/doc/classes/FileSystem.src/M000448.html +4 -4
  133. data/doc/classes/FileSystem.src/M000449.html +4 -4
  134. data/doc/classes/FileSystem.src/M000450.html +4 -4
  135. data/doc/classes/FileSystem.src/M000451.html +5 -5
  136. data/doc/classes/FileSystem.src/M000452.html +4 -6
  137. data/doc/classes/FileSystem.src/M000453.html +6 -11
  138. data/doc/classes/FileSystem.src/M000454.html +25 -0
  139. data/doc/classes/GenericGIF.html +25 -25
  140. data/doc/classes/GenericGIF.src/M000578.html +4 -4
  141. data/doc/classes/GenericGIF.src/M000579.html +4 -4
  142. data/doc/classes/GenericGIF.src/M000580.html +4 -4
  143. data/doc/classes/GenericGIF.src/M000581.html +4 -4
  144. data/doc/classes/GenericGIF.src/M000582.html +18 -0
  145. data/doc/classes/HostSystem.html +91 -91
  146. data/doc/classes/HostSystem.src/M000496.html +4 -8
  147. data/doc/classes/HostSystem.src/M000497.html +8 -4
  148. data/doc/classes/HostSystem.src/M000498.html +5 -5
  149. data/doc/classes/HostSystem.src/M000499.html +4 -8
  150. data/doc/classes/HostSystem.src/M000500.html +8 -19
  151. data/doc/classes/HostSystem.src/M000501.html +19 -4
  152. data/doc/classes/HostSystem.src/M000502.html +4 -5
  153. data/doc/classes/HostSystem.src/M000503.html +5 -4
  154. data/doc/classes/HostSystem.src/M000504.html +4 -4
  155. data/doc/classes/HostSystem.src/M000505.html +4 -4
  156. data/doc/classes/HostSystem.src/M000506.html +4 -4
  157. data/doc/classes/HostSystem.src/M000507.html +3 -3
  158. data/doc/classes/HostSystem.src/M000508.html +4 -4
  159. data/doc/classes/HostSystem.src/M000509.html +4 -4
  160. data/doc/classes/HostSystem.src/M000510.html +4 -4
  161. data/doc/classes/HostSystem.src/M000511.html +4 -15
  162. data/doc/classes/HostSystem.src/M000512.html +15 -4
  163. data/doc/classes/HostSystem.src/M000513.html +18 -0
  164. data/doc/classes/ImageSniffing.html +36 -36
  165. data/doc/classes/ImageSniffing.src/M000526.html +103 -19
  166. data/doc/classes/ImageSniffing.src/M000527.html +22 -141
  167. data/doc/classes/ImageSniffing.src/M000528.html +152 -34
  168. data/doc/classes/ImageSniffing.src/M000529.html +31 -30
  169. data/doc/classes/ImageSniffing.src/M000530.html +25 -38
  170. data/doc/classes/ImageSniffing.src/M000531.html +38 -53
  171. data/doc/classes/ImageSniffing.src/M000532.html +53 -23
  172. data/doc/classes/ImageSniffing.src/M000533.html +44 -0
  173. data/doc/classes/PackedProDosPic.html +5 -5
  174. data/doc/classes/PackedProDosPic.src/M000427.html +40 -0
  175. data/doc/classes/PascalDos.html +15 -15
  176. data/doc/classes/PascalDos.src/M000538.html +5 -8
  177. data/doc/classes/PascalDos.src/M000539.html +8 -49
  178. data/doc/classes/PascalDos.src/M000540.html +62 -0
  179. data/doc/classes/PascalPic.html +10 -10
  180. data/doc/classes/PascalPic.src/M000520.html +6 -4
  181. data/doc/classes/PascalPic.src/M000521.html +18 -0
  182. data/doc/classes/ProDosBINFile.html +20 -20
  183. data/doc/classes/ProDosBINFile.src/M000516.html +7 -5
  184. data/doc/classes/ProDosBINFile.src/M000517.html +4 -4
  185. data/doc/classes/ProDosBINFile.src/M000518.html +4 -4
  186. data/doc/classes/ProDosBINFile.src/M000519.html +18 -0
  187. data/doc/classes/ProcSource.html +10 -10
  188. data/doc/classes/ProcSource.src/M000576.html +21 -92
  189. data/doc/classes/ProcSource.src/M000577.html +109 -0
  190. data/doc/classes/RDoc.html +5 -5
  191. data/doc/classes/RDoc.src/M000575.html +40 -0
  192. data/doc/classes/RipXplore.html +1 -1
  193. data/doc/classes/RsDos.html +20 -20
  194. data/doc/classes/RsDos.src/M000522.html +4 -4
  195. data/doc/classes/RsDos.src/M000523.html +4 -4
  196. data/doc/classes/RsDos.src/M000524.html +4 -48
  197. data/doc/classes/RsDos.src/M000525.html +62 -0
  198. data/doc/classes/ScAsm.html +5 -5
  199. data/doc/classes/ScAsm.src/M000534.html +45 -0
  200. data/doc/classes/ScreenDump.html +5 -5
  201. data/doc/classes/ScreenDump.src/M000574.html +24 -0
  202. data/doc/classes/ScreenDumps.html +15 -15
  203. data/doc/classes/ScreenDumps.src/M000403.html +8 -10
  204. data/doc/classes/ScreenDumps.src/M000404.html +10 -21
  205. data/doc/classes/ScreenDumps.src/M000405.html +35 -0
  206. data/doc/classes/SubclassTracking.html +5 -5
  207. data/doc/classes/SubclassTracking.src/M000583.html +23 -0
  208. data/doc/classes/Ti99Fms.html +10 -10
  209. data/doc/classes/Ti99Fms.src/M000481.html +4 -63
  210. data/doc/classes/Ti99Fms.src/M000482.html +77 -0
  211. data/doc/classes/Ti99TextFile.html +10 -10
  212. data/doc/classes/Ti99TextFile.src/M000547.html +19 -4
  213. data/doc/classes/Ti99TextFile.src/M000548.html +18 -0
  214. data/doc/classes/TiArtistPattern.html +20 -20
  215. data/doc/classes/TiArtistPattern.src/M000406.html +36 -4
  216. data/doc/classes/TiArtistPattern.src/M000407.html +4 -4
  217. data/doc/classes/TiArtistPattern.src/M000408.html +4 -4
  218. data/doc/classes/TiArtistPattern.src/M000409.html +18 -0
  219. data/doc/classes/TiRLE.html +20 -20
  220. data/doc/classes/TiRLE.src/M000543.html +5 -5
  221. data/doc/classes/TiRLE.src/M000544.html +8 -29
  222. data/doc/classes/TiRLE.src/M000545.html +30 -5
  223. data/doc/classes/TiRLE.src/M000546.html +18 -0
  224. data/doc/classes/Trs80PascalSource.html +10 -10
  225. data/doc/classes/Trs80PascalSource.src/M000541.html +6 -16
  226. data/doc/classes/Trs80PascalSource.src/M000542.html +30 -0
  227. data/doc/classes/Trs80Text.html +15 -15
  228. data/doc/classes/Trs80Text.src/M000455.html +6 -4
  229. data/doc/classes/Trs80Text.src/M000456.html +4 -4
  230. data/doc/classes/Trs80Text.src/M000457.html +18 -0
  231. data/doc/classes/TrsDos.html +20 -20
  232. data/doc/classes/TrsDos.src/M000421.html +4 -4
  233. data/doc/classes/TrsDos.src/M000422.html +4 -4
  234. data/doc/classes/TrsDos.src/M000423.html +4 -50
  235. data/doc/classes/TrsDos.src/M000424.html +64 -0
  236. data/doc/classes/Zx81PFile.html +10 -10
  237. data/doc/classes/Zx81PFile.src/M000401.html +4 -4
  238. data/doc/classes/Zx81PFile.src/M000402.html +18 -0
  239. data/doc/created.rid +1 -1
  240. data/doc/files/lib/FileCache_rb.html +1 -1
  241. data/doc/files/lib/LibRipXplore_rb.html +1 -1
  242. data/doc/files/lib/file_systems/CbmDos_rb.html +1 -1
  243. data/doc/files/lib/native_file_types/c64/C64GeosFile_rb.html +1 -1
  244. data/doc/files/test/tc_c64_rb.html +1 -1
  245. data/doc/fr_method_index.html +318 -317
  246. data/lib/FileCache.rb +6 -0
  247. data/lib/LibRipXplore.rb +1 -1
  248. data/lib/file_systems/CbmDos.rb +4 -0
  249. data/lib/native_file_types/c64/C64GeosFile.rb +1 -1
  250. data/test/tc_c64.rb +10 -0
  251. metadata +44 -3
@@ -0,0 +1,62 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>files (PascalDos)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/PascalDos.rb, line 57</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">files</span>(<span class="ruby-identifier">file_system_image</span>)
15
+ <span class="ruby-identifier">files</span>=<span class="ruby-constant">FileContainer</span>.<span class="ruby-identifier">new</span>
16
+ <span class="ruby-identifier">catalog</span>=<span class="ruby-identifier">get_block</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-value">2</span>)
17
+ <span class="ruby-comment cmt">#we've read the first block in the catalog, now read the rest
18
+ <span class="ruby-identifier">catalog_size</span>=<span class="ruby-identifier">catalog</span>[<span class="ruby-value">2</span>]
19
+ <span class="ruby-value">3</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">catalog_size</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
20
+ <span class="ruby-identifier">catalog</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-identifier">get_block</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">i</span>)
21
+ <span class="ruby-keyword kw">end</span>
22
+ <span class="ruby-comment cmt"># 06 VOLUME NAME LENGTH (1 byte)
23
+ <span class="ruby-comment cmt"># 07..0D VOLUME NAME (17 bytes)
24
+ <span class="ruby-comment cmt"># 0E..0F VOLUME SIZE (WORD)
25
+ <span class="ruby-comment cmt"># 10 NUMBER OF FILES (BYTE)
26
+ <span class="ruby-identifier">volume_name_length</span>=<span class="ruby-identifier">catalog</span>[<span class="ruby-value">6</span>]
27
+ <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">volume_name</span>=<span class="ruby-identifier">catalog</span>[<span class="ruby-value">7</span><span class="ruby-operator">..</span><span class="ruby-value">6</span><span class="ruby-operator">+</span><span class="ruby-identifier">volume_name_length</span>]
28
+ <span class="ruby-identifier">files_in_volume</span>=<span class="ruby-identifier">catalog</span>[<span class="ruby-value">0x10</span>]
29
+ <span class="ruby-comment cmt">#read in all the files
30
+
31
+ <span class="ruby-comment cmt"># 00..01 FIRST BLOCK (word)
32
+ <span class="ruby-comment cmt"># 02..03 LAST BLOCK+1 (word)
33
+ <span class="ruby-comment cmt"># 04 FILE TYPE (byte) = untypedfile,xdskfile,codefile,textfile,infofile,datafile,graffile,fotofile,securdir
34
+ <span class="ruby-comment cmt"># 05 STATUS (byte)
35
+ <span class="ruby-comment cmt"># 06 FILENAME LENGTH (1 byte)
36
+ <span class="ruby-comment cmt"># 07..15 FILENAME (15 bytes)
37
+ <span class="ruby-comment cmt"># 16..17 BYTES IN LAST BLOCK (word)
38
+ <span class="ruby-comment cmt"># 18.1A FILE ACCESS DATE
39
+ <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">files_in_volume</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file_no</span><span class="ruby-operator">|</span>
40
+ <span class="ruby-identifier">file_record</span>=<span class="ruby-identifier">catalog</span>[<span class="ruby-identifier">file_no</span><span class="ruby-operator">*</span><span class="ruby-value">0x1a</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">file_no</span><span class="ruby-operator">*</span><span class="ruby-value">0x1a</span><span class="ruby-operator">+</span><span class="ruby-value">0x19</span>)]
41
+ <span class="ruby-identifier">first_block</span>=<span class="ruby-identifier">file_record</span>[<span class="ruby-value">0</span>]<span class="ruby-operator">+</span><span class="ruby-identifier">file_record</span>[<span class="ruby-value">1</span>]<span class="ruby-operator">*</span><span class="ruby-value">0x100</span>
42
+ <span class="ruby-identifier">first_block_in_next_file</span>=<span class="ruby-identifier">file_record</span>[<span class="ruby-value">2</span>]<span class="ruby-operator">+</span><span class="ruby-identifier">file_record</span>[<span class="ruby-value">3</span>]<span class="ruby-operator">*</span><span class="ruby-value">0x100</span>
43
+ <span class="ruby-identifier">last_block</span>=<span class="ruby-identifier">first_block_in_next_file</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>
44
+ <span class="ruby-identifier">file_type</span>=<span class="ruby-identifier">file_record</span>[<span class="ruby-value">4</span>]
45
+ <span class="ruby-identifier">file_name_length</span>=<span class="ruby-identifier">file_record</span>[<span class="ruby-value">6</span>]
46
+ <span class="ruby-identifier">file_name</span>=<span class="ruby-identifier">file_record</span>[<span class="ruby-value">7</span><span class="ruby-operator">..</span><span class="ruby-value">6</span><span class="ruby-operator">+</span><span class="ruby-identifier">file_name_length</span>]
47
+ <span class="ruby-identifier">bytes_in_last_block</span>=<span class="ruby-identifier">file_record</span>[<span class="ruby-value">0x16</span>]<span class="ruby-operator">+</span><span class="ruby-identifier">file_record</span>[<span class="ruby-value">0x17</span>]<span class="ruby-operator">*</span><span class="ruby-value">0x100</span>
48
+ <span class="ruby-identifier">file_contents</span>=<span class="ruby-value str">&quot;&quot;</span>
49
+ <span class="ruby-identifier">first_block</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">last_block</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">block_no</span><span class="ruby-operator">|</span>
50
+ <span class="ruby-identifier">this_block</span>=<span class="ruby-identifier">get_block</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">block_no</span>)
51
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_no</span><span class="ruby-operator">==</span><span class="ruby-identifier">last_block</span> <span class="ruby-keyword kw">then</span>
52
+ <span class="ruby-identifier">file_contents</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-identifier">this_block</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">bytes_in_last_block</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>]
53
+ <span class="ruby-keyword kw">else</span>
54
+ <span class="ruby-identifier">file_contents</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-identifier">this_block</span>
55
+ <span class="ruby-keyword kw">end</span>
56
+ <span class="ruby-keyword kw">end</span>
57
+ <span class="ruby-identifier">files</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-constant">NativeFileType</span>.<span class="ruby-identifier">best_fit</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">file_name</span>,<span class="ruby-identifier">file_contents</span>,<span class="ruby-identifier">file_type</span>)
58
+ <span class="ruby-keyword kw">end</span>
59
+ <span class="ruby-identifier">files</span>
60
+ <span class="ruby-keyword kw">end</span></pre>
61
+ </body>
62
+ </html>
@@ -88,8 +88,8 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000519">file_system_file_types</a>&nbsp;&nbsp;
92
- <a href="#M000520">unpacked_picture_bytes</a>&nbsp;&nbsp;
91
+ <a href="#M000520">file_system_file_types</a>&nbsp;&nbsp;
92
+ <a href="#M000521">unpacked_picture_bytes</a>&nbsp;&nbsp;
93
93
  </div>
94
94
  </div>
95
95
 
@@ -111,12 +111,12 @@
111
111
  <div id="methods">
112
112
  <h3 class="section-bar">Public Class methods</h3>
113
113
 
114
- <div id="method-M000519" class="method-detail">
115
- <a name="M000519"></a>
114
+ <div id="method-M000520" class="method-detail">
115
+ <a name="M000520"></a>
116
116
 
117
117
  <div class="method-heading">
118
- <a href="PascalPic.src/M000519.html" target="Code" class="method-signature"
119
- onclick="popupCode('PascalPic.src/M000519.html');return false;">
118
+ <a href="PascalPic.src/M000520.html" target="Code" class="method-signature"
119
+ onclick="popupCode('PascalPic.src/M000520.html');return false;">
120
120
  <span class="method-name">file_system_file_types</span><span class="method-args">()</span>
121
121
  </a>
122
122
  </div>
@@ -127,12 +127,12 @@
127
127
 
128
128
  <h3 class="section-bar">Public Instance methods</h3>
129
129
 
130
- <div id="method-M000520" class="method-detail">
131
- <a name="M000520"></a>
130
+ <div id="method-M000521" class="method-detail">
131
+ <a name="M000521"></a>
132
132
 
133
133
  <div class="method-heading">
134
- <a href="PascalPic.src/M000520.html" target="Code" class="method-signature"
135
- onclick="popupCode('PascalPic.src/M000520.html');return false;">
134
+ <a href="PascalPic.src/M000521.html" target="Code" class="method-signature"
135
+ onclick="popupCode('PascalPic.src/M000521.html');return false;">
136
136
  <span class="method-name">unpacked_picture_bytes</span><span class="method-args">()</span>
137
137
  </a>
138
138
  </div>
@@ -5,14 +5,16 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>unpacked_picture_bytes (PascalPic)</title>
8
+ <title>file_system_file_types (PascalPic)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/AppleHiResPic.rb, line 166</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpacked_picture_bytes</span>
15
- <span class="ruby-identifier">contents</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/AppleHiResPic.rb, line 161</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">file_system_file_types</span>
15
+ {
16
+ <span class="ruby-constant">PascalDos</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value">0x07</span>
17
+ }
16
18
  <span class="ruby-keyword kw">end</span></pre>
17
19
  </body>
18
20
  </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>unpacked_picture_bytes (PascalPic)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/AppleHiResPic.rb, line 166</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpacked_picture_bytes</span>
15
+ <span class="ruby-identifier">contents</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -88,10 +88,10 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000515">file_system_file_types</a>&nbsp;&nbsp;
92
- <a href="#M000517">load_address</a>&nbsp;&nbsp;
93
- <a href="#M000516">matching_score</a>&nbsp;&nbsp;
94
- <a href="#M000518">to_disassembly</a>&nbsp;&nbsp;
91
+ <a href="#M000516">file_system_file_types</a>&nbsp;&nbsp;
92
+ <a href="#M000518">load_address</a>&nbsp;&nbsp;
93
+ <a href="#M000517">matching_score</a>&nbsp;&nbsp;
94
+ <a href="#M000519">to_disassembly</a>&nbsp;&nbsp;
95
95
  </div>
96
96
  </div>
97
97
 
@@ -113,12 +113,12 @@
113
113
  <div id="methods">
114
114
  <h3 class="section-bar">Public Class methods</h3>
115
115
 
116
- <div id="method-M000515" class="method-detail">
117
- <a name="M000515"></a>
116
+ <div id="method-M000516" class="method-detail">
117
+ <a name="M000516"></a>
118
118
 
119
119
  <div class="method-heading">
120
- <a href="ProDosBINFile.src/M000515.html" target="Code" class="method-signature"
121
- onclick="popupCode('ProDosBINFile.src/M000515.html');return false;">
120
+ <a href="ProDosBINFile.src/M000516.html" target="Code" class="method-signature"
121
+ onclick="popupCode('ProDosBINFile.src/M000516.html');return false;">
122
122
  <span class="method-name">file_system_file_types</span><span class="method-args">()</span>
123
123
  </a>
124
124
  </div>
@@ -127,12 +127,12 @@
127
127
  </div>
128
128
  </div>
129
129
 
130
- <div id="method-M000516" class="method-detail">
131
- <a name="M000516"></a>
130
+ <div id="method-M000517" class="method-detail">
131
+ <a name="M000517"></a>
132
132
 
133
133
  <div class="method-heading">
134
- <a href="ProDosBINFile.src/M000516.html" target="Code" class="method-signature"
135
- onclick="popupCode('ProDosBINFile.src/M000516.html');return false;">
134
+ <a href="ProDosBINFile.src/M000517.html" target="Code" class="method-signature"
135
+ onclick="popupCode('ProDosBINFile.src/M000517.html');return false;">
136
136
  <span class="method-name">matching_score</span><span class="method-args">()</span>
137
137
  </a>
138
138
  </div>
@@ -143,12 +143,12 @@
143
143
 
144
144
  <h3 class="section-bar">Public Instance methods</h3>
145
145
 
146
- <div id="method-M000517" class="method-detail">
147
- <a name="M000517"></a>
146
+ <div id="method-M000518" class="method-detail">
147
+ <a name="M000518"></a>
148
148
 
149
149
  <div class="method-heading">
150
- <a href="ProDosBINFile.src/M000517.html" target="Code" class="method-signature"
151
- onclick="popupCode('ProDosBINFile.src/M000517.html');return false;">
150
+ <a href="ProDosBINFile.src/M000518.html" target="Code" class="method-signature"
151
+ onclick="popupCode('ProDosBINFile.src/M000518.html');return false;">
152
152
  <span class="method-name">load_address</span><span class="method-args">()</span>
153
153
  </a>
154
154
  </div>
@@ -157,12 +157,12 @@
157
157
  </div>
158
158
  </div>
159
159
 
160
- <div id="method-M000518" class="method-detail">
161
- <a name="M000518"></a>
160
+ <div id="method-M000519" class="method-detail">
161
+ <a name="M000519"></a>
162
162
 
163
163
  <div class="method-heading">
164
- <a href="ProDosBINFile.src/M000518.html" target="Code" class="method-signature"
165
- onclick="popupCode('ProDosBINFile.src/M000518.html');return false;">
164
+ <a href="ProDosBINFile.src/M000519.html" target="Code" class="method-signature"
165
+ onclick="popupCode('ProDosBINFile.src/M000519.html');return false;">
166
166
  <span class="method-name">to_disassembly</span><span class="method-args">()</span>
167
167
  </a>
168
168
  </div>
@@ -5,14 +5,16 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>matching_score (ProDosBINFile)</title>
8
+ <title>file_system_file_types (ProDosBINFile)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/ProDosFile.rb, line 95</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">matching_score</span>
15
- <span class="ruby-constant">ProDosFile</span>.<span class="ruby-identifier">matching_score</span><span class="ruby-operator">+</span><span class="ruby-value">0</span><span class="ruby-value">.1</span>
16
- <span class="ruby-keyword kw">end</span></pre>
13
+ <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/ProDosFile.rb, line 89</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">file_system_file_types</span>
15
+ {
16
+ <span class="ruby-constant">ProDos</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value">0x06</span>
17
+ }
18
+ <span class="ruby-keyword kw">end</span></pre>
17
19
  </body>
18
20
  </html>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>load_address (ProDosBINFile)</title>
8
+ <title>matching_score (ProDosBINFile)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/ProDosFile.rb, line 99</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_address</span>
15
- <span class="ruby-identifier">aux_code</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/ProDosFile.rb, line 95</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">matching_score</span>
15
+ <span class="ruby-constant">ProDosFile</span>.<span class="ruby-identifier">matching_score</span><span class="ruby-operator">+</span><span class="ruby-value">0</span><span class="ruby-value">.1</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>to_disassembly (ProDosBINFile)</title>
8
+ <title>load_address (ProDosBINFile)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/ProDosFile.rb, line 103</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_disassembly</span>
15
- <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Apple2</span>.<span class="ruby-identifier">disassemble</span>(<span class="ruby-identifier">data_without_header</span>,<span class="ruby-identifier">load_address</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/ProDosFile.rb, line 99</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_address</span>
15
+ <span class="ruby-identifier">aux_code</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_disassembly (ProDosBINFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/native_file_types/apple2/ProDosFile.rb, line 103</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_disassembly</span>
15
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Apple2</span>.<span class="ruby-identifier">disassemble</span>(<span class="ruby-identifier">data_without_header</span>,<span class="ruby-identifier">load_address</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -80,8 +80,8 @@
80
80
  <h3 class="section-bar">Methods</h3>
81
81
 
82
82
  <div class="name-list">
83
- <a href="#M000575">get_lines</a>&nbsp;&nbsp;
84
- <a href="#M000576">handle</a>&nbsp;&nbsp;
83
+ <a href="#M000576">get_lines</a>&nbsp;&nbsp;
84
+ <a href="#M000577">handle</a>&nbsp;&nbsp;
85
85
  </div>
86
86
  </div>
87
87
 
@@ -103,12 +103,12 @@
103
103
  <div id="methods">
104
104
  <h3 class="section-bar">Public Instance methods</h3>
105
105
 
106
- <div id="method-M000575" class="method-detail">
107
- <a name="M000575"></a>
106
+ <div id="method-M000576" class="method-detail">
107
+ <a name="M000576"></a>
108
108
 
109
109
  <div class="method-heading">
110
- <a href="ProcSource.src/M000575.html" target="Code" class="method-signature"
111
- onclick="popupCode('ProcSource.src/M000575.html');return false;">
110
+ <a href="ProcSource.src/M000576.html" target="Code" class="method-signature"
111
+ onclick="popupCode('ProcSource.src/M000576.html');return false;">
112
112
  <span class="method-name">get_lines</span><span class="method-args">(filename, start_line = 0)</span>
113
113
  </a>
114
114
  </div>
@@ -117,12 +117,12 @@
117
117
  </div>
118
118
  </div>
119
119
 
120
- <div id="method-M000576" class="method-detail">
121
- <a name="M000576"></a>
120
+ <div id="method-M000577" class="method-detail">
121
+ <a name="M000577"></a>
122
122
 
123
123
  <div class="method-heading">
124
- <a href="ProcSource.src/M000576.html" target="Code" class="method-signature"
125
- onclick="popupCode('ProcSource.src/M000576.html');return false;">
124
+ <a href="ProcSource.src/M000577.html" target="Code" class="method-signature"
125
+ onclick="popupCode('ProcSource.src/M000577.html');return false;">
126
126
  <span class="method-name">handle</span><span class="method-args">(proc)</span>
127
127
  </a>
128
128
  </div>
@@ -5,104 +5,33 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>handle (ProcSource)</title>
8
+ <title>get_lines (ProcSource)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/proc_source.rb, line 37</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle</span>(<span class="ruby-identifier">proc</span>)
15
- <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">line</span> = <span class="ruby-identifier">proc</span>.<span class="ruby-identifier">source_descriptor</span>
16
- <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">get_lines</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">line</span>) <span class="ruby-operator">||</span> []
17
-
18
- <span class="ruby-identifier">lexer</span> = <span class="ruby-constant">RubyLex</span>.<span class="ruby-identifier">new</span>
19
- <span class="ruby-identifier">lexer</span>.<span class="ruby-identifier">set_input</span>(<span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">lines</span>.<span class="ruby-identifier">join</span>))
20
-
21
- <span class="ruby-identifier">state</span> = <span class="ruby-identifier">:before_constructor</span>
22
- <span class="ruby-identifier">nesting_level</span> = <span class="ruby-value">1</span>
23
- <span class="ruby-identifier">start_token</span>, <span class="ruby-identifier">end_token</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>
24
- <span class="ruby-identifier">found</span> = <span class="ruby-keyword kw">false</span>
25
- <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">token</span> = <span class="ruby-identifier">lexer</span>.<span class="ruby-identifier">token</span>
26
- <span class="ruby-comment cmt"># we've not yet found any proc-constructor -- we'll try to find one.
27
- <span class="ruby-keyword kw">if</span> [<span class="ruby-identifier">:before_constructor</span>, <span class="ruby-identifier">:check_more</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">state</span>)
28
- <span class="ruby-comment cmt"># checking more and newline? -&gt; done
29
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkNL</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">state</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:check_more</span>
30
- <span class="ruby-identifier">state</span> = <span class="ruby-identifier">:done</span>
31
- <span class="ruby-keyword kw">break</span>
32
- <span class="ruby-keyword kw">end</span>
33
- <span class="ruby-comment cmt"># token is Proc?
34
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkCONSTANT</span>) <span class="ruby-keyword kw">and</span>
35
- <span class="ruby-identifier">token</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">:@name</span>) <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;Proc&quot;</span>
36
- <span class="ruby-comment cmt"># method call?
37
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lexer</span>.<span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkDOT</span>)
38
- <span class="ruby-identifier">method</span> = <span class="ruby-identifier">lexer</span>.<span class="ruby-identifier">token</span>
39
- <span class="ruby-comment cmt"># constructor?
40
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">method</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkIDENTIFIER</span>) <span class="ruby-keyword kw">and</span>
41
- <span class="ruby-identifier">method</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">:@name</span>) <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;new&quot;</span>
42
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">state</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:check_more</span>
43
- <span class="ruby-comment cmt"># okay, code will follow soon.
44
- <span class="ruby-identifier">state</span> = <span class="ruby-identifier">:before_code</span>
45
- <span class="ruby-keyword kw">else</span>
46
- <span class="ruby-comment cmt"># multiple procs on one line
47
- <span class="ruby-keyword kw">return</span>
48
- <span class="ruby-keyword kw">end</span>
49
- <span class="ruby-keyword kw">end</span>
50
- <span class="ruby-keyword kw">end</span>
51
- <span class="ruby-comment cmt"># token is lambda or proc call?
52
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkIDENTIFIER</span>) <span class="ruby-keyword kw">and</span>
53
- <span class="ruby-node">%w{proc lambda}</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">token</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">:@name</span>))
54
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">state</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:check_more</span>
55
- <span class="ruby-comment cmt"># okay, code will follow soon.
56
- <span class="ruby-identifier">state</span> = <span class="ruby-identifier">:before_code</span>
57
- <span class="ruby-keyword kw">else</span>
58
- <span class="ruby-comment cmt"># multiple procs on one line
59
- <span class="ruby-keyword kw">return</span>
60
- <span class="ruby-keyword kw">end</span>
61
- <span class="ruby-keyword kw">end</span>
62
-
63
- <span class="ruby-comment cmt"># we're waiting for the code start to appear.
64
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">state</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:before_code</span>
65
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkfLBRACE</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkDO</span>)
66
- <span class="ruby-comment cmt"># found the code start, update state and remember current token
67
- <span class="ruby-identifier">state</span> = <span class="ruby-identifier">:in_code</span>
68
- <span class="ruby-identifier">start_token</span> = <span class="ruby-identifier">token</span>
69
- <span class="ruby-keyword kw">end</span>
70
-
71
- <span class="ruby-comment cmt"># okay, we're inside code
72
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">state</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:in_code</span>
73
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkRBRACE</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkEND</span>)
74
- <span class="ruby-identifier">nesting_level</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
75
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nesting_level</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
76
- <span class="ruby-comment cmt"># we're done!
77
- <span class="ruby-identifier">end_token</span> = <span class="ruby-identifier">token</span>
78
- <span class="ruby-comment cmt"># parse another time to check if there are multiple procs on one line
79
- <span class="ruby-comment cmt"># we can't handle that case correctly so we return no source code at all
80
- <span class="ruby-identifier">state</span> = <span class="ruby-identifier">:check_more</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/proc_source.rb, line 13</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_lines</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">start_line</span> = <span class="ruby-value">0</span>)
15
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">filename</span>
16
+ <span class="ruby-comment cmt"># special &quot;(irb)&quot; descriptor?
17
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;(irb)&quot;</span>
18
+ <span class="ruby-constant">IRB</span>.<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:MAIN_CONTEXT</span>].<span class="ruby-identifier">io</span>.<span class="ruby-identifier">line</span>(<span class="ruby-identifier">start_line</span> <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>)
19
+ <span class="ruby-comment cmt"># special &quot;(eval...)&quot; descriptor?
20
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^\(eval.+\)$/</span>
21
+ <span class="ruby-constant">EVAL_LINES__</span>[<span class="ruby-identifier">filename</span>][<span class="ruby-identifier">start_line</span> <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]
22
+ <span class="ruby-comment cmt"># regular file
23
+ <span class="ruby-keyword kw">else</span>
24
+ <span class="ruby-comment cmt"># Ruby already parsed this file? (see disclaimer above)
25
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lines</span> = <span class="ruby-constant">SCRIPT_LINES__</span>[<span class="ruby-identifier">filename</span>]
26
+ <span class="ruby-identifier">lines</span>[(<span class="ruby-identifier">start_line</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]
27
+ <span class="ruby-comment cmt"># If the file exists we're going to try reading it in
28
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">filename</span>)
29
+ <span class="ruby-keyword kw">begin</span>
30
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">readlines</span>(<span class="ruby-identifier">filename</span>)[(<span class="ruby-identifier">start_line</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]
31
+ <span class="ruby-keyword kw">rescue</span>
32
+ <span class="ruby-keyword kw">nil</span>
81
33
  <span class="ruby-keyword kw">end</span>
82
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkfLBRACE</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkDO</span>) <span class="ruby-keyword kw">or</span>
83
- <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkBEGIN</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkCASE</span>) <span class="ruby-keyword kw">or</span>
84
- <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkCLASS</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkDEF</span>) <span class="ruby-keyword kw">or</span>
85
- <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkFOR</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkIF</span>) <span class="ruby-keyword kw">or</span>
86
- <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkMODULE</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkUNLESS</span>) <span class="ruby-keyword kw">or</span>
87
- <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkUNTIL</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkWHILE</span>) <span class="ruby-keyword kw">or</span>
88
- <span class="ruby-identifier">token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TklBEGIN</span>)
89
- <span class="ruby-identifier">nesting_level</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
90
34
  <span class="ruby-keyword kw">end</span>
91
- <span class="ruby-keyword kw">end</span>
92
- <span class="ruby-keyword kw">end</span>
93
-
94
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start_token</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">end_token</span>
95
- <span class="ruby-identifier">start_line</span>, <span class="ruby-identifier">end_line</span> = <span class="ruby-identifier">start_token</span>.<span class="ruby-identifier">line_no</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>, <span class="ruby-identifier">end_token</span>.<span class="ruby-identifier">line_no</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
96
- <span class="ruby-identifier">source</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">start_line</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">end_line</span>]
97
- <span class="ruby-identifier">start_offset</span> = <span class="ruby-identifier">start_token</span>.<span class="ruby-identifier">char_no</span>
98
- <span class="ruby-identifier">start_offset</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start_token</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RubyToken</span><span class="ruby-operator">::</span><span class="ruby-constant">TkDO</span>)
99
- <span class="ruby-identifier">end_offset</span> = <span class="ruby-operator">-</span>(<span class="ruby-identifier">source</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">end_token</span>.<span class="ruby-identifier">char_no</span>)
100
- <span class="ruby-identifier">source</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">0</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">start_offset</span>)
101
- <span class="ruby-identifier">source</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-identifier">end_offset</span> <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>)
102
-
103
- <span class="ruby-comment cmt"># Can't use .strip because newline at end of code might be important
104
- <span class="ruby-comment cmt"># (Stuff would break when somebody does proc { ... #foo\n})
105
- <span class="ruby-identifier">proc</span>.<span class="ruby-identifier">source</span> = <span class="ruby-identifier">source</span>.<span class="ruby-identifier">join</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^ | $/</span>, <span class="ruby-value str">&quot;&quot;</span>)
106
35
  <span class="ruby-keyword kw">end</span>
107
36
  <span class="ruby-keyword kw">end</span></pre>
108
37
  </body>