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.
- data/doc/classes/A2DskDosOrder.html +5 -5
- data/doc/classes/A2DskDosOrder.src/M000535.html +18 -0
- data/doc/classes/AppleCPM.html +40 -40
- data/doc/classes/AppleCPM.src/M000413.html +4 -4
- data/doc/classes/AppleCPM.src/M000414.html +5 -8
- data/doc/classes/AppleCPM.src/M000415.html +7 -9
- data/doc/classes/AppleCPM.src/M000416.html +10 -27
- data/doc/classes/AppleCPM.src/M000417.html +16 -11
- data/doc/classes/AppleCPM.src/M000418.html +21 -43
- data/doc/classes/AppleCPM.src/M000419.html +37 -10
- data/doc/classes/AppleCPM.src/M000420.html +30 -0
- data/doc/classes/AppleHiResPic.html +40 -40
- data/doc/classes/AppleHiResPic.src/M000473.html +5 -5
- data/doc/classes/AppleHiResPic.src/M000474.html +4 -4
- data/doc/classes/AppleHiResPic.src/M000475.html +4 -38
- data/doc/classes/AppleHiResPic.src/M000476.html +38 -4
- data/doc/classes/AppleHiResPic.src/M000477.html +4 -4
- data/doc/classes/AppleHiResPic.src/M000478.html +4 -4
- data/doc/classes/AppleHiResPic.src/M000479.html +4 -4
- data/doc/classes/AppleHiResPic.src/M000480.html +18 -0
- data/doc/classes/ApplePrintShopMiniPix.html +20 -20
- data/doc/classes/ApplePrintShopMiniPix.src/M000570.html +24 -4
- data/doc/classes/ApplePrintShopMiniPix.src/M000571.html +4 -4
- data/doc/classes/ApplePrintShopMiniPix.src/M000572.html +4 -4
- data/doc/classes/ApplePrintShopMiniPix.src/M000573.html +18 -0
- data/doc/classes/AppleWorksWP.html +10 -10
- data/doc/classes/AppleWorksWP.src/M000536.html +6 -31
- data/doc/classes/AppleWorksWP.src/M000537.html +45 -0
- data/doc/classes/Applesoft.html +10 -10
- data/doc/classes/Applesoft.src/M000436.html +8 -62
- data/doc/classes/Applesoft.src/M000437.html +75 -0
- data/doc/classes/AtariDos.html +10 -10
- data/doc/classes/AtariDos.src/M000425.html +4 -29
- data/doc/classes/AtariDos.src/M000426.html +43 -0
- data/doc/classes/C64.html +105 -105
- data/doc/classes/C64.src/M000549.html +4 -4
- data/doc/classes/C64.src/M000550.html +4 -17
- data/doc/classes/C64.src/M000551.html +17 -6
- data/doc/classes/C64.src/M000552.html +6 -8
- data/doc/classes/C64.src/M000553.html +4 -4
- data/doc/classes/C64.src/M000554.html +8 -5
- data/doc/classes/C64.src/M000555.html +5 -5
- data/doc/classes/C64.src/M000556.html +5 -4
- data/doc/classes/C64.src/M000557.html +4 -4
- data/doc/classes/C64.src/M000558.html +4 -4
- data/doc/classes/C64.src/M000559.html +4 -4
- data/doc/classes/C64.src/M000560.html +3 -3
- data/doc/classes/C64.src/M000561.html +4 -4
- data/doc/classes/C64.src/M000562.html +3 -3
- data/doc/classes/C64.src/M000563.html +4 -5
- data/doc/classes/C64.src/M000564.html +5 -5
- data/doc/classes/C64.src/M000565.html +5 -4
- data/doc/classes/C64.src/M000566.html +3 -3
- data/doc/classes/C64.src/M000567.html +4 -55
- data/doc/classes/C64.src/M000568.html +22 -66
- data/doc/classes/C64.src/M000569.html +113 -0
- data/doc/classes/C64GeoPaintPic.html +30 -30
- data/doc/classes/C64GeoPaintPic.src/M000430.html +4 -4
- data/doc/classes/C64GeoPaintPic.src/M000431.html +4 -4
- data/doc/classes/C64GeoPaintPic.src/M000432.html +4 -57
- data/doc/classes/C64GeoPaintPic.src/M000433.html +55 -27
- data/doc/classes/C64GeoPaintPic.src/M000434.html +29 -6
- data/doc/classes/C64GeoPaintPic.src/M000435.html +20 -0
- data/doc/classes/C64GeosBASICFile.src/M000305.html +1 -1
- data/doc/classes/C64PhotoScrap.html +70 -70
- data/doc/classes/C64PhotoScrap.src/M000458.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000459.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000460.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000461.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000462.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000463.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000464.html +4 -7
- data/doc/classes/C64PhotoScrap.src/M000465.html +7 -4
- data/doc/classes/C64PhotoScrap.src/M000466.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000467.html +4 -4
- data/doc/classes/C64PhotoScrap.src/M000468.html +5 -40
- data/doc/classes/C64PhotoScrap.src/M000469.html +36 -28
- data/doc/classes/C64PhotoScrap.src/M000470.html +30 -9
- data/doc/classes/C64PhotoScrap.src/M000471.html +24 -0
- data/doc/classes/C64Seq.html +15 -15
- data/doc/classes/C64Seq.src/M000410.html +6 -4
- data/doc/classes/C64Seq.src/M000411.html +4 -4
- data/doc/classes/C64Seq.src/M000412.html +18 -0
- data/doc/classes/CVT.html +10 -10
- data/doc/classes/CVT.src/M000514.html +4 -4
- data/doc/classes/CVT.src/M000515.html +18 -0
- data/doc/classes/CVTArchive.html +12 -12
- data/doc/classes/CVTArchive.src/M000399.html +4 -56
- data/doc/classes/CVTArchive.src/M000400.html +70 -0
- data/doc/classes/CbmDos.src/M000099.html +4 -0
- data/doc/classes/CbmDos.src/M000100.html +1 -1
- data/doc/classes/CbmDos.src/M000101.html +1 -1
- data/doc/classes/CbmDos.src/M000102.html +1 -1
- data/doc/classes/CbmDos.src/M000103.html +1 -1
- data/doc/classes/CbmDos.src/M000104.html +1 -1
- data/doc/classes/CbmDos.src/M000105.html +1 -1
- data/doc/classes/CbmDos.src/M000106.html +1 -1
- data/doc/classes/CbmDos.src/M000107.html +1 -1
- data/doc/classes/Coco.html +65 -65
- data/doc/classes/Coco.src/M000483.html +4 -4
- data/doc/classes/Coco.src/M000484.html +4 -4
- data/doc/classes/Coco.src/M000485.html +4 -4
- data/doc/classes/Coco.src/M000486.html +4 -4
- data/doc/classes/Coco.src/M000487.html +4 -4
- data/doc/classes/Coco.src/M000488.html +3 -3
- data/doc/classes/Coco.src/M000489.html +4 -4
- data/doc/classes/Coco.src/M000490.html +4 -4
- data/doc/classes/Coco.src/M000491.html +4 -4
- data/doc/classes/Coco.src/M000492.html +4 -4
- data/doc/classes/Coco.src/M000493.html +4 -4
- data/doc/classes/Coco.src/M000494.html +4 -41
- data/doc/classes/Coco.src/M000495.html +55 -0
- data/doc/classes/CocoBasic.html +10 -10
- data/doc/classes/CocoBasic.src/M000428.html +6 -58
- data/doc/classes/CocoBasic.src/M000429.html +72 -0
- data/doc/classes/D81.html +45 -45
- data/doc/classes/D81.src/M000438.html +4 -4
- data/doc/classes/D81.src/M000439.html +4 -4
- data/doc/classes/D81.src/M000440.html +4 -4
- data/doc/classes/D81.src/M000441.html +4 -4
- data/doc/classes/D81.src/M000442.html +4 -4
- data/doc/classes/D81.src/M000443.html +4 -4
- data/doc/classes/D81.src/M000444.html +4 -9
- data/doc/classes/D81.src/M000445.html +7 -8
- data/doc/classes/D81.src/M000446.html +24 -0
- data/doc/classes/FileCache.html +15 -0
- data/doc/classes/FileCache.src/M000398.html +20 -0
- data/doc/classes/FileContainer.html +5 -5
- data/doc/classes/FileContainer.src/M000472.html +26 -0
- data/doc/classes/FileSystem.html +41 -41
- data/doc/classes/FileSystem.src/M000447.html +4 -4
- data/doc/classes/FileSystem.src/M000448.html +4 -4
- data/doc/classes/FileSystem.src/M000449.html +4 -4
- data/doc/classes/FileSystem.src/M000450.html +4 -4
- data/doc/classes/FileSystem.src/M000451.html +5 -5
- data/doc/classes/FileSystem.src/M000452.html +4 -6
- data/doc/classes/FileSystem.src/M000453.html +6 -11
- data/doc/classes/FileSystem.src/M000454.html +25 -0
- data/doc/classes/GenericGIF.html +25 -25
- data/doc/classes/GenericGIF.src/M000578.html +4 -4
- data/doc/classes/GenericGIF.src/M000579.html +4 -4
- data/doc/classes/GenericGIF.src/M000580.html +4 -4
- data/doc/classes/GenericGIF.src/M000581.html +4 -4
- data/doc/classes/GenericGIF.src/M000582.html +18 -0
- data/doc/classes/HostSystem.html +91 -91
- data/doc/classes/HostSystem.src/M000496.html +4 -8
- data/doc/classes/HostSystem.src/M000497.html +8 -4
- data/doc/classes/HostSystem.src/M000498.html +5 -5
- data/doc/classes/HostSystem.src/M000499.html +4 -8
- data/doc/classes/HostSystem.src/M000500.html +8 -19
- data/doc/classes/HostSystem.src/M000501.html +19 -4
- data/doc/classes/HostSystem.src/M000502.html +4 -5
- data/doc/classes/HostSystem.src/M000503.html +5 -4
- data/doc/classes/HostSystem.src/M000504.html +4 -4
- data/doc/classes/HostSystem.src/M000505.html +4 -4
- data/doc/classes/HostSystem.src/M000506.html +4 -4
- data/doc/classes/HostSystem.src/M000507.html +3 -3
- data/doc/classes/HostSystem.src/M000508.html +4 -4
- data/doc/classes/HostSystem.src/M000509.html +4 -4
- data/doc/classes/HostSystem.src/M000510.html +4 -4
- data/doc/classes/HostSystem.src/M000511.html +4 -15
- data/doc/classes/HostSystem.src/M000512.html +15 -4
- data/doc/classes/HostSystem.src/M000513.html +18 -0
- data/doc/classes/ImageSniffing.html +36 -36
- data/doc/classes/ImageSniffing.src/M000526.html +103 -19
- data/doc/classes/ImageSniffing.src/M000527.html +22 -141
- data/doc/classes/ImageSniffing.src/M000528.html +152 -34
- data/doc/classes/ImageSniffing.src/M000529.html +31 -30
- data/doc/classes/ImageSniffing.src/M000530.html +25 -38
- data/doc/classes/ImageSniffing.src/M000531.html +38 -53
- data/doc/classes/ImageSniffing.src/M000532.html +53 -23
- data/doc/classes/ImageSniffing.src/M000533.html +44 -0
- data/doc/classes/PackedProDosPic.html +5 -5
- data/doc/classes/PackedProDosPic.src/M000427.html +40 -0
- data/doc/classes/PascalDos.html +15 -15
- data/doc/classes/PascalDos.src/M000538.html +5 -8
- data/doc/classes/PascalDos.src/M000539.html +8 -49
- data/doc/classes/PascalDos.src/M000540.html +62 -0
- data/doc/classes/PascalPic.html +10 -10
- data/doc/classes/PascalPic.src/M000520.html +6 -4
- data/doc/classes/PascalPic.src/M000521.html +18 -0
- data/doc/classes/ProDosBINFile.html +20 -20
- data/doc/classes/ProDosBINFile.src/M000516.html +7 -5
- data/doc/classes/ProDosBINFile.src/M000517.html +4 -4
- data/doc/classes/ProDosBINFile.src/M000518.html +4 -4
- data/doc/classes/ProDosBINFile.src/M000519.html +18 -0
- data/doc/classes/ProcSource.html +10 -10
- data/doc/classes/ProcSource.src/M000576.html +21 -92
- data/doc/classes/ProcSource.src/M000577.html +109 -0
- data/doc/classes/RDoc.html +5 -5
- data/doc/classes/RDoc.src/M000575.html +40 -0
- data/doc/classes/RipXplore.html +1 -1
- data/doc/classes/RsDos.html +20 -20
- data/doc/classes/RsDos.src/M000522.html +4 -4
- data/doc/classes/RsDos.src/M000523.html +4 -4
- data/doc/classes/RsDos.src/M000524.html +4 -48
- data/doc/classes/RsDos.src/M000525.html +62 -0
- data/doc/classes/ScAsm.html +5 -5
- data/doc/classes/ScAsm.src/M000534.html +45 -0
- data/doc/classes/ScreenDump.html +5 -5
- data/doc/classes/ScreenDump.src/M000574.html +24 -0
- data/doc/classes/ScreenDumps.html +15 -15
- data/doc/classes/ScreenDumps.src/M000403.html +8 -10
- data/doc/classes/ScreenDumps.src/M000404.html +10 -21
- data/doc/classes/ScreenDumps.src/M000405.html +35 -0
- data/doc/classes/SubclassTracking.html +5 -5
- data/doc/classes/SubclassTracking.src/M000583.html +23 -0
- data/doc/classes/Ti99Fms.html +10 -10
- data/doc/classes/Ti99Fms.src/M000481.html +4 -63
- data/doc/classes/Ti99Fms.src/M000482.html +77 -0
- data/doc/classes/Ti99TextFile.html +10 -10
- data/doc/classes/Ti99TextFile.src/M000547.html +19 -4
- data/doc/classes/Ti99TextFile.src/M000548.html +18 -0
- data/doc/classes/TiArtistPattern.html +20 -20
- data/doc/classes/TiArtistPattern.src/M000406.html +36 -4
- data/doc/classes/TiArtistPattern.src/M000407.html +4 -4
- data/doc/classes/TiArtistPattern.src/M000408.html +4 -4
- data/doc/classes/TiArtistPattern.src/M000409.html +18 -0
- data/doc/classes/TiRLE.html +20 -20
- data/doc/classes/TiRLE.src/M000543.html +5 -5
- data/doc/classes/TiRLE.src/M000544.html +8 -29
- data/doc/classes/TiRLE.src/M000545.html +30 -5
- data/doc/classes/TiRLE.src/M000546.html +18 -0
- data/doc/classes/Trs80PascalSource.html +10 -10
- data/doc/classes/Trs80PascalSource.src/M000541.html +6 -16
- data/doc/classes/Trs80PascalSource.src/M000542.html +30 -0
- data/doc/classes/Trs80Text.html +15 -15
- data/doc/classes/Trs80Text.src/M000455.html +6 -4
- data/doc/classes/Trs80Text.src/M000456.html +4 -4
- data/doc/classes/Trs80Text.src/M000457.html +18 -0
- data/doc/classes/TrsDos.html +20 -20
- data/doc/classes/TrsDos.src/M000421.html +4 -4
- data/doc/classes/TrsDos.src/M000422.html +4 -4
- data/doc/classes/TrsDos.src/M000423.html +4 -50
- data/doc/classes/TrsDos.src/M000424.html +64 -0
- data/doc/classes/Zx81PFile.html +10 -10
- data/doc/classes/Zx81PFile.src/M000401.html +4 -4
- data/doc/classes/Zx81PFile.src/M000402.html +18 -0
- data/doc/created.rid +1 -1
- data/doc/files/lib/FileCache_rb.html +1 -1
- data/doc/files/lib/LibRipXplore_rb.html +1 -1
- data/doc/files/lib/file_systems/CbmDos_rb.html +1 -1
- data/doc/files/lib/native_file_types/c64/C64GeosFile_rb.html +1 -1
- data/doc/files/test/tc_c64_rb.html +1 -1
- data/doc/fr_method_index.html +318 -317
- data/lib/FileCache.rb +6 -0
- data/lib/LibRipXplore.rb +1 -1
- data/lib/file_systems/CbmDos.rb +4 -0
- data/lib/native_file_types/c64/C64GeosFile.rb +1 -1
- data/test/tc_c64.rb +10 -0
- 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"><<</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">""</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"><<</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"><<</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"><<</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>
|
data/doc/classes/PascalPic.html
CHANGED
@@ -88,8 +88,8 @@
|
|
88
88
|
<h3 class="section-bar">Methods</h3>
|
89
89
|
|
90
90
|
<div class="name-list">
|
91
|
-
<a href="#
|
92
|
-
<a href="#
|
91
|
+
<a href="#M000520">file_system_file_types</a>
|
92
|
+
<a href="#M000521">unpacked_picture_bytes</a>
|
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-
|
115
|
-
<a name="
|
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/
|
119
|
-
onclick="popupCode('PascalPic.src/
|
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-
|
131
|
-
<a name="
|
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/
|
135
|
-
onclick="popupCode('PascalPic.src/
|
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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
15
|
-
|
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">></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="#
|
92
|
-
<a href="#
|
93
|
-
<a href="#
|
94
|
-
<a href="#
|
91
|
+
<a href="#M000516">file_system_file_types</a>
|
92
|
+
<a href="#M000518">load_address</a>
|
93
|
+
<a href="#M000517">matching_score</a>
|
94
|
+
<a href="#M000519">to_disassembly</a>
|
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-
|
117
|
-
<a name="
|
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/
|
121
|
-
onclick="popupCode('ProDosBINFile.src/
|
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-
|
131
|
-
<a name="
|
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/
|
135
|
-
onclick="popupCode('ProDosBINFile.src/
|
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-
|
147
|
-
<a name="
|
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/
|
151
|
-
onclick="popupCode('ProDosBINFile.src/
|
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-
|
161
|
-
<a name="
|
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/
|
165
|
-
onclick="popupCode('ProDosBINFile.src/
|
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>
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
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">></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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
15
|
-
<span class="ruby-identifier">
|
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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
15
|
-
<span class="ruby-
|
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>
|
data/doc/classes/ProcSource.html
CHANGED
@@ -80,8 +80,8 @@
|
|
80
80
|
<h3 class="section-bar">Methods</h3>
|
81
81
|
|
82
82
|
<div class="name-list">
|
83
|
-
<a href="#
|
84
|
-
<a href="#
|
83
|
+
<a href="#M000576">get_lines</a>
|
84
|
+
<a href="#M000577">handle</a>
|
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-
|
107
|
-
<a name="
|
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/
|
111
|
-
onclick="popupCode('ProcSource.src/
|
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-
|
121
|
-
<a name="
|
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/
|
125
|
-
onclick="popupCode('ProcSource.src/
|
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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
15
|
-
<span class="ruby-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
<span class="ruby-
|
29
|
-
|
30
|
-
|
31
|
-
<span class="ruby-keyword kw">
|
32
|
-
|
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">"Proc"</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">"new"</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 "(irb)" descriptor?
|
17
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">"(irb)"</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 "(eval...)" 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">""</span>)
|
106
35
|
<span class="ruby-keyword kw">end</span>
|
107
36
|
<span class="ruby-keyword kw">end</span></pre>
|
108
37
|
</body>
|