fsdb 0.5 → 0.6.0
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/{RELEASE-NOTES → History.txt} +6 -0
- data/{README → README.txt} +26 -17
- data/examples/flat.rb +146 -0
- data/examples/fsdb-example.rb +28 -0
- data/examples/rbformat.rb +17 -0
- data/examples/yaml2.rb +29 -0
- data/junk/OLDRakefile +98 -0
- data/junk/OLDRakefile2 +55 -0
- data/junk/check-cache.rb +18 -0
- data/junk/create-lock.rb +25 -0
- data/junk/doc/old-api/classes/FSDB.html +139 -0
- data/junk/doc/old-api/classes/FSDB/Database.html +953 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000029.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000030.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000031.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000032.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000033.html +33 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000034.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000035.html +22 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000036.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000037.html +22 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000038.html +43 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000039.html +25 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000040.html +43 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000041.html +23 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000042.html +22 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000043.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000044.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000045.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000046.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000047.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000048.html +16 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000049.html +71 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000050.html +43 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000051.html +53 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000052.html +44 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000053.html +39 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000054.html +72 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000055.html +39 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000056.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000057.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000058.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000059.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000060.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000061.html +23 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000062.html +23 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000063.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database.src/M000064.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Database/AbortedTransaction.html +118 -0
- data/junk/doc/old-api/classes/FSDB/Database/CreateFileError.html +120 -0
- data/junk/doc/old-api/classes/FSDB/Database/DirIsImmutableError.html +117 -0
- data/junk/doc/old-api/classes/FSDB/Database/DirNotEmptyError.html +117 -0
- data/junk/doc/old-api/classes/FSDB/Database/FormatError.html +117 -0
- data/junk/doc/old-api/classes/FSDB/Database/MissingFileError.html +117 -0
- data/junk/doc/old-api/classes/FSDB/Database/MissingObjectError.html +117 -0
- data/junk/doc/old-api/classes/FSDB/Database/NotDirError.html +118 -0
- data/junk/doc/old-api/classes/FSDB/Database/PathComponentError.html +120 -0
- data/junk/doc/old-api/classes/FSDB/DatabaseDebuggable.html +148 -0
- data/junk/doc/old-api/classes/FSDB/DatabaseDebuggable.src/M000005.html +21 -0
- data/junk/doc/old-api/classes/FSDB/DatabaseDebuggable.src/M000007.html +21 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.html +210 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000006.html +22 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000007.html +22 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000008.html +22 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000009.html +22 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000010.html +22 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000011.html +22 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000012.html +22 -0
- data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000013.html +22 -0
- data/junk/doc/old-api/classes/FSDB/ForkSafely.html +126 -0
- data/junk/doc/old-api/classes/FSDB/Modex.html +237 -0
- data/junk/doc/old-api/classes/FSDB/Modex.src/M000024.html +21 -0
- data/junk/doc/old-api/classes/FSDB/Modex.src/M000025.html +30 -0
- data/junk/doc/old-api/classes/FSDB/Modex.src/M000026.html +21 -0
- data/junk/doc/old-api/classes/FSDB/Modex.src/M000027.html +30 -0
- data/junk/doc/old-api/classes/FSDB/Modex.src/M000028.html +44 -0
- data/junk/doc/old-api/classes/FSDB/Modex.src/M000029.html +26 -0
- data/junk/doc/old-api/classes/FSDB/Modex.src/M000030.html +48 -0
- data/junk/doc/old-api/classes/FSDB/Modex/ForkSafely.html +105 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.html +244 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000018.html +19 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000019.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000020.html +19 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000021.html +18 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000022.html +23 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000023.html +30 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000024.html +26 -0
- data/junk/doc/old-api/classes/FSDB/Mutex.src/M000025.html +21 -0
- data/junk/doc/old-api/classes/FSDB/Mutex/ForkSafely.html +105 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.html +257 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000012.html +23 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000013.html +18 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000014.html +23 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000015.html +18 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000016.html +18 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000017.html +22 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000018.html +23 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000019.html +18 -0
- data/junk/doc/old-api/classes/FSDB/PathUtilities/InvalidPathError.html +111 -0
- data/junk/doc/old-api/classes/File.html +272 -0
- data/junk/doc/old-api/classes/File.src/M000001.html +17 -0
- data/junk/doc/old-api/classes/File.src/M000002.html +17 -0
- data/junk/doc/old-api/classes/File.src/M000003.html +20 -0
- data/junk/doc/old-api/classes/File.src/M000004.html +20 -0
- data/junk/doc/old-api/classes/File.src/M000005.html +32 -0
- data/junk/doc/old-api/classes/File.src/M000006.html +32 -0
- data/junk/doc/old-api/created.rid +1 -0
- data/junk/doc/old-api/files/README.html +112 -0
- data/junk/doc/old-api/files/RELEASE-NOTES.html +233 -0
- data/junk/doc/old-api/files/fsdb_txt.html +888 -0
- data/junk/doc/old-api/files/lib/fsdb/database_rb.html +115 -0
- data/junk/doc/old-api/files/lib/fsdb/file-lock_rb.html +109 -0
- data/junk/doc/old-api/files/lib/fsdb/modex_rb.html +121 -0
- data/junk/doc/old-api/files/lib/fsdb/mutex_rb.html +108 -0
- data/junk/doc/old-api/files/lib/fsdb/util_rb.html +108 -0
- data/junk/doc/old-api/fr_class_index.html +47 -0
- data/junk/doc/old-api/fr_file_index.html +34 -0
- data/junk/doc/old-api/fr_method_index.html +90 -0
- data/junk/doc/old-api/index.html +24 -0
- data/junk/doc/old-api/rdoc-style.css +208 -0
- data/junk/file-lock-nb.rb +15 -0
- data/junk/fl.rb +144 -0
- data/junk/flock-test.rb +39 -0
- data/junk/fsdb.kateproject +47 -0
- data/junk/fsdb.prj +196 -0
- data/junk/fsdb.sf +46 -0
- data/junk/insert-dir.rb +48 -0
- data/junk/lock-test-bug.rb +150 -0
- data/junk/lock-test-too-simple.rb +136 -0
- data/junk/lock-test.rb +151 -0
- data/{script → junk}/mkrdoc +0 -0
- data/junk/restore-fsdb.rb +37 -0
- data/junk/rf.txt +5 -0
- data/junk/solaris-bug-fixed.rb +184 -0
- data/junk/solaris-bug.rb +182 -0
- data/junk/solaris-bug.txt +43 -0
- data/junk/sync.rb +327 -0
- data/junk/test-file-lock.html +86 -0
- data/junk/test-file-lock.rb +84 -0
- data/junk/test-processes.rb +131 -0
- data/junk/test-threads.rb +113 -0
- data/junk/wiki-mutex.rb +108 -0
- data/lib/fsdb/database.rb +5 -3
- data/lib/fsdb/delegatable.rb +21 -0
- data/lib/fsdb/faster-modex.rb +223 -0
- data/lib/fsdb/faster-mutex.rb +138 -0
- data/lib/fsdb/mutex.rb +4 -1
- data/lib/fsdb/persistent.rb +91 -0
- data/lib/fsdb/read-write-object.rb +36 -0
- data/lib/fsdb/server.rb +44 -0
- data/misc/fsdb-blorubu.txt +47 -0
- data/misc/mtime-and-file-id.txt +23 -0
- data/misc/posixlock.txt +148 -0
- data/rakefile +39 -0
- data/tasks/ann.rake +80 -0
- data/tasks/bones.rake +20 -0
- data/tasks/gem.rake +201 -0
- data/tasks/git.rake +40 -0
- data/tasks/notes.rake +27 -0
- data/tasks/post_load.rake +34 -0
- data/tasks/rdoc.rake +51 -0
- data/tasks/rubyforge.rake +55 -0
- data/tasks/setup.rb +292 -0
- data/tasks/spec.rake +54 -0
- data/tasks/svn.rake +47 -0
- data/tasks/test.rake +40 -0
- data/tasks/zentest.rake +36 -0
- data/test/err.txt +31 -0
- data/test/runs.rb +8 -0
- data/test/test-file-lock.rb +78 -0
- data/test/test-util.rb +1 -0
- data/test/trap.rb +31 -0
- metadata +198 -35
- data/Manifest +0 -36
- data/Rakefile +0 -10
- data/fsdb.gemspec +0 -113
|
@@ -0,0 +1,16 @@
|
|
|
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>default_fetch (FSDB::Database)</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/fsdb/database.rb, line 469</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">default_fetch</span>(<span class="ruby-identifier">path</span>); <span class="ruby-keyword kw">nil</span>; <span class="ruby-keyword kw">end</span></pre>
|
|
15
|
+
</body>
|
|
16
|
+
</html>
|
|
@@ -0,0 +1,71 @@
|
|
|
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>browse (FSDB::Database)</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/fsdb/database.rb, line 484</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">browse</span>(<span class="ruby-identifier">path</span> = <span class="ruby-value str">"/"</span>) <span class="ruby-comment cmt"># :yields: object</span>
|
|
15
|
+
<span class="ruby-identifier">abs_path</span> = <span class="ruby-identifier">absolute</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
<span class="ruby-identifier">file_id</span> = <span class="ruby-identifier">get_file_id</span>(<span class="ruby-identifier">abs_path</span>)
|
|
17
|
+
|
|
18
|
+
<span class="ruby-comment cmt">## put these outside method, and pass in params?</span>
|
|
19
|
+
<span class="ruby-identifier">do_when_first</span> = <span class="ruby-identifier">proc</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
20
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">file_handle</span>
|
|
21
|
+
|
|
22
|
+
<span class="ruby-keyword kw">begin</span>
|
|
23
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span>
|
|
24
|
+
<span class="ruby-identifier">abs_path</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\/+$/</span>, <span class="ruby-value str">""</span>)
|
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
|
26
|
+
<span class="ruby-identifier">f</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">abs_path</span>, <span class="ruby-value str">"r"</span>)
|
|
27
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span>
|
|
28
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">MissingFileError</span>
|
|
29
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EINTR</span>
|
|
30
|
+
<span class="ruby-keyword kw">retry</span>
|
|
31
|
+
<span class="ruby-keyword kw">end</span>
|
|
32
|
+
|
|
33
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">file_handle</span> = <span class="ruby-identifier">f</span>
|
|
34
|
+
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">lock_shared</span>(<span class="ruby-ivar">@lock_type</span>)
|
|
35
|
+
<span class="ruby-identifier">identify_file_type</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">abs_path</span>)
|
|
36
|
+
<span class="ruby-comment cmt">## could avoid if cache_object says so</span>
|
|
37
|
+
<span class="ruby-identifier">object</span> = <span class="ruby-identifier">cache_object</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>)
|
|
38
|
+
<span class="ruby-keyword kw">end</span>
|
|
39
|
+
|
|
40
|
+
<span class="ruby-identifier">do_when_last</span> = <span class="ruby-identifier">proc</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
41
|
+
<span class="ruby-comment cmt"># last one out closes the file</span>
|
|
42
|
+
<span class="ruby-identifier">f</span> = <span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">file_handle</span>
|
|
43
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">f</span>
|
|
44
|
+
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">close</span>
|
|
45
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">file_handle</span> = <span class="ruby-keyword kw">nil</span>
|
|
46
|
+
<span class="ruby-keyword kw">end</span>
|
|
47
|
+
<span class="ruby-keyword kw">end</span>
|
|
48
|
+
|
|
49
|
+
<span class="ruby-identifier">object_shared</span>(<span class="ruby-identifier">file_id</span>, <span class="ruby-identifier">do_when_first</span>, <span class="ruby-identifier">do_when_last</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
50
|
+
<span class="ruby-identifier">object</span> = <span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">just_gimme_the_damn_object!</span>
|
|
51
|
+
<span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">object</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
|
52
|
+
<span class="ruby-keyword kw">end</span>
|
|
53
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotDirError</span>
|
|
54
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>, <span class="ruby-node">"Not a directory - #{path} in #{inspect}"</span>
|
|
55
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MissingFileError</span>
|
|
56
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
57
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">CAN_OPEN_DIR</span>
|
|
58
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>) <span class="ruby-comment cmt">### redundant!</span>
|
|
59
|
+
<span class="ruby-keyword kw">yield</span> <span class="ruby-constant">Formats</span><span class="ruby-operator">::</span><span class="ruby-constant">DIR_LOAD_FROM_PATH</span>[<span class="ruby-identifier">abs_path</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
|
60
|
+
<span class="ruby-keyword kw">end</span>
|
|
61
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
62
|
+
<span class="ruby-identifier">default_browse</span>(<span class="ruby-identifier">path</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">x</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>}
|
|
63
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">AbortedTransaction</span>
|
|
64
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EACCES</span>
|
|
65
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">CAN_OPEN_DIR</span>
|
|
66
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
67
|
+
<span class="ruby-comment cmt"># on some platforms, opening a dir raises EACCESS</span>
|
|
68
|
+
<span class="ruby-keyword kw">yield</span> <span class="ruby-constant">Formats</span><span class="ruby-operator">::</span><span class="ruby-constant">DIR_LOAD_FROM_PATH</span>[<span class="ruby-identifier">abs_path</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
|
69
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
70
|
+
</body>
|
|
71
|
+
</html>
|
|
@@ -0,0 +1,43 @@
|
|
|
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>edit (FSDB::Database)</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/fsdb/database.rb, line 545</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>(<span class="ruby-identifier">path</span> = <span class="ruby-value str">"/"</span>)
|
|
15
|
+
<span class="ruby-identifier">abs_path</span> = <span class="ruby-identifier">absolute</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
<span class="ruby-identifier">file_id</span> = <span class="ruby-identifier">get_file_id</span>(<span class="ruby-identifier">abs_path</span>)
|
|
17
|
+
<span class="ruby-identifier">object_exclusive</span> <span class="ruby-identifier">file_id</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
18
|
+
<span class="ruby-identifier">open_write_lock</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
19
|
+
<span class="ruby-identifier">object</span> = <span class="ruby-identifier">cache_object</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>)
|
|
20
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">object</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
|
21
|
+
<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">f</span>)
|
|
22
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">f</span>.<span class="ruby-identifier">mtime</span>, <span class="ruby-identifier">inc_version_of</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>), <span class="ruby-identifier">object</span>)
|
|
23
|
+
<span class="ruby-identifier">result</span>
|
|
24
|
+
<span class="ruby-keyword kw">end</span>
|
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
|
26
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">DirIsImmutableError</span>
|
|
27
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">DirIsImmutableError</span>, <span class="ruby-node">"Cannot edit dir #{path} in #{inspect}"</span>
|
|
28
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotDirError</span>
|
|
29
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>, <span class="ruby-node">"Not a directory - #{path} in #{inspect}"</span>
|
|
30
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MissingFileError</span>
|
|
31
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">DirIsImmutableError</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span> <span class="ruby-keyword kw">and</span>
|
|
32
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
33
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
34
|
+
<span class="ruby-identifier">default_edit</span>(<span class="ruby-identifier">path</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">x</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>}
|
|
35
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">AbortedTransaction</span>
|
|
36
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>) <span class="ruby-comment cmt"># The cached object may have edits which are not valid.</span>
|
|
37
|
+
<span class="ruby-keyword kw">nil</span>
|
|
38
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
|
|
39
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
40
|
+
<span class="ruby-identifier">raise</span>
|
|
41
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
42
|
+
</body>
|
|
43
|
+
</html>
|
|
@@ -0,0 +1,53 @@
|
|
|
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>replace (FSDB::Database)</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/fsdb/database.rb, line 584</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">path</span>)
|
|
15
|
+
<span class="ruby-identifier">abs_path</span> = <span class="ruby-identifier">absolute</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
<span class="ruby-identifier">file_id</span> = <span class="ruby-identifier">make_file_id</span>(<span class="ruby-identifier">abs_path</span>)
|
|
17
|
+
<span class="ruby-identifier">object_exclusive</span> <span class="ruby-identifier">file_id</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
18
|
+
<span class="ruby-identifier">open_write_lock</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
19
|
+
<span class="ruby-identifier">old_object</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">stat</span>.<span class="ruby-identifier">zero?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">cache_object</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>)
|
|
20
|
+
<span class="ruby-identifier">object</span> = <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">old_object</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
|
21
|
+
<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">f</span>)
|
|
22
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">f</span>.<span class="ruby-identifier">mtime</span>, <span class="ruby-identifier">inc_version_of</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>), <span class="ruby-identifier">object</span>)
|
|
23
|
+
<span class="ruby-identifier">old_object</span>
|
|
24
|
+
<span class="ruby-keyword kw">end</span>
|
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
|
26
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">DirIsImmutableError</span>
|
|
27
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">DirIsImmutableError</span>, <span class="ruby-node">"Cannot replace dir #{path} in #{inspect}"</span>
|
|
28
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotDirError</span>
|
|
29
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>, <span class="ruby-node">"Not a directory - #{path} in #{inspect}"</span>
|
|
30
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">AbortedTransaction</span>
|
|
31
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>) <span class="ruby-comment cmt"># The cached object may have edits which are not valid.</span>
|
|
32
|
+
<span class="ruby-keyword kw">nil</span>
|
|
33
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">FormatError</span>
|
|
34
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
35
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>)
|
|
36
|
+
<span class="ruby-identifier">raise</span>
|
|
37
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">PathComponentError</span>
|
|
38
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">PathComponentError</span>, <span class="ruby-node">"Some component of #{path} in #{inspect} "</span> <span class="ruby-operator">+</span>
|
|
39
|
+
<span class="ruby-value str">"already exists and is not a directory"</span>
|
|
40
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CreateFileError</span>
|
|
41
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">CreateFileError</span>, <span class="ruby-node">"Cannot create file at #{path} in #{inspect}"</span>
|
|
42
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MissingFileError</span>
|
|
43
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
44
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">DirIsImmutableError</span>
|
|
45
|
+
<span class="ruby-keyword kw">else</span>
|
|
46
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>
|
|
47
|
+
<span class="ruby-keyword kw">end</span>
|
|
48
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
|
|
49
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
50
|
+
<span class="ruby-identifier">raise</span>
|
|
51
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
52
|
+
</body>
|
|
53
|
+
</html>
|
|
@@ -0,0 +1,44 @@
|
|
|
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>insert (FSDB::Database)</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/fsdb/database.rb, line 631</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">object</span>)
|
|
15
|
+
<span class="ruby-identifier">abs_path</span> = <span class="ruby-identifier">absolute</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
<span class="ruby-identifier">file_id</span> = <span class="ruby-identifier">make_file_id</span>(<span class="ruby-identifier">abs_path</span>)
|
|
17
|
+
<span class="ruby-identifier">object_exclusive</span> <span class="ruby-identifier">file_id</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
18
|
+
<span class="ruby-identifier">open_write_lock</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
19
|
+
<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">f</span>)
|
|
20
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">f</span>.<span class="ruby-identifier">mtime</span>, <span class="ruby-identifier">inc_version_of</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>), <span class="ruby-identifier">object</span>)
|
|
21
|
+
<span class="ruby-identifier">object</span>
|
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
|
24
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotDirError</span>
|
|
25
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>, <span class="ruby-node">"Not a directory - #{path} in #{inspect}"</span>
|
|
26
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">FormatError</span>
|
|
27
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>)
|
|
28
|
+
<span class="ruby-identifier">raise</span>
|
|
29
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">PathComponentError</span>
|
|
30
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">PathComponentError</span>, <span class="ruby-node">"Some component of #{path} in #{inspect} "</span> <span class="ruby-operator">+</span>
|
|
31
|
+
<span class="ruby-value str">"already exists and is not a directory"</span>
|
|
32
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CreateFileError</span>
|
|
33
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-regexp re">/\/$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">path</span>
|
|
34
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">DirIsImmutableError</span>
|
|
35
|
+
<span class="ruby-keyword kw">else</span>
|
|
36
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">CreateFileError</span>, <span class="ruby-node">"Cannot create file at #{path} in #{inspect}"</span>
|
|
37
|
+
<span class="ruby-keyword kw">end</span>
|
|
38
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MissingFileError</span>
|
|
39
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">DirIsImmutableError</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span>
|
|
40
|
+
<span class="ruby-keyword kw">ensure</span>
|
|
41
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>) <span class="ruby-comment cmt"># no one else can get this copy of object</span>
|
|
42
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
43
|
+
</body>
|
|
44
|
+
</html>
|
|
@@ -0,0 +1,39 @@
|
|
|
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>fetch (FSDB::Database)</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/fsdb/database.rb, line 738</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">path</span> = <span class="ruby-value str">"/"</span>)
|
|
15
|
+
<span class="ruby-identifier">abs_path</span> = <span class="ruby-identifier">absolute</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
<span class="ruby-identifier">file_id</span> = <span class="ruby-identifier">get_file_id</span>(<span class="ruby-identifier">abs_path</span>)
|
|
17
|
+
<span class="ruby-identifier">object_exclusive</span> <span class="ruby-identifier">file_id</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
18
|
+
<span class="ruby-identifier">open_read_lock</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
19
|
+
<span class="ruby-identifier">object</span> = <span class="ruby-identifier">cache_object</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>)
|
|
20
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">stale!</span>
|
|
21
|
+
<span class="ruby-identifier">object</span>
|
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
|
24
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotDirError</span>
|
|
25
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>, <span class="ruby-node">"Not a directory - #{path} in #{inspect}"</span>
|
|
26
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MissingFileError</span>
|
|
27
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
28
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-constant">Formats</span><span class="ruby-operator">::</span><span class="ruby-constant">DIR_LOAD_FROM_PATH</span>[<span class="ruby-identifier">abs_path</span>]
|
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
|
30
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
31
|
+
<span class="ruby-identifier">default_fetch</span>(<span class="ruby-identifier">path</span>)
|
|
32
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EACCES</span>
|
|
33
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">CAN_OPEN_DIR</span>
|
|
34
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
35
|
+
<span class="ruby-comment cmt"># on some platforms, opening a dir raises EACCESS</span>
|
|
36
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-constant">Formats</span><span class="ruby-operator">::</span><span class="ruby-constant">DIR_LOAD_FROM_PATH</span>[<span class="ruby-identifier">abs_path</span>]
|
|
37
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
38
|
+
</body>
|
|
39
|
+
</html>
|
|
@@ -0,0 +1,72 @@
|
|
|
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>delete (FSDB::Database)</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/fsdb/database.rb, line 673</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">load</span>=<span class="ruby-keyword kw">true</span>) <span class="ruby-comment cmt"># :yields: object</span>
|
|
15
|
+
<span class="ruby-identifier">abs_path</span> = <span class="ruby-identifier">absolute</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
<span class="ruby-identifier">file_id</span> = <span class="ruby-identifier">get_file_id</span>(<span class="ruby-identifier">abs_path</span>)
|
|
17
|
+
<span class="ruby-identifier">delete_later</span> = <span class="ruby-keyword kw">false</span>
|
|
18
|
+
<span class="ruby-identifier">object_exclusive</span> <span class="ruby-identifier">file_id</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
19
|
+
<span class="ruby-identifier">open_write_lock</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
20
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">load</span>
|
|
21
|
+
<span class="ruby-identifier">object</span> = <span class="ruby-identifier">cache_object</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>)
|
|
22
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-identifier">block_given?</span> <span class="ruby-value">? </span>(<span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">object</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">object</span>
|
|
23
|
+
<span class="ruby-keyword kw">else</span>
|
|
24
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">true</span>
|
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
|
26
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">CAN_DELETE_OPEN_FILE</span>
|
|
27
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>)
|
|
28
|
+
<span class="ruby-keyword kw">else</span>
|
|
29
|
+
<span class="ruby-identifier">delete_later</span> = <span class="ruby-keyword kw">true</span>
|
|
30
|
+
<span class="ruby-keyword kw">end</span>
|
|
31
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">stale!</span>
|
|
32
|
+
<span class="ruby-identifier">del_version_of</span>(<span class="ruby-identifier">f</span>)
|
|
33
|
+
<span class="ruby-identifier">result</span>
|
|
34
|
+
<span class="ruby-keyword kw">end</span>
|
|
35
|
+
<span class="ruby-keyword kw">end</span>
|
|
36
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">DirIsImmutableError</span>
|
|
37
|
+
<span class="ruby-keyword kw">begin</span>
|
|
38
|
+
<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>)
|
|
39
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span>
|
|
40
|
+
<span class="ruby-comment cmt"># Someone else got it first.</span>
|
|
41
|
+
<span class="ruby-keyword kw">end</span>
|
|
42
|
+
<span class="ruby-keyword kw">true</span>
|
|
43
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotDirError</span>
|
|
44
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>, <span class="ruby-node">"Not a directory - #{path} in #{inspect}"</span>
|
|
45
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MissingFileError</span>
|
|
46
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">symlink?</span>(<span class="ruby-identifier">abs_path</span>) <span class="ruby-comment cmt"># get_file_id fails if target deleted</span>
|
|
47
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
|
|
48
|
+
<span class="ruby-keyword kw">end</span>
|
|
49
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
50
|
+
<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>)
|
|
51
|
+
<span class="ruby-keyword kw">end</span>
|
|
52
|
+
<span class="ruby-keyword kw">nil</span>
|
|
53
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOTEMPTY</span>
|
|
54
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">DirNotEmptyError</span>, <span class="ruby-node">"Directory not empty - #{path} in #{inspect}"</span>
|
|
55
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EACCES</span>
|
|
56
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">CAN_OPEN_DIR</span>
|
|
57
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
58
|
+
<span class="ruby-comment cmt"># on some platforms, opening a dir raises EACCESS</span>
|
|
59
|
+
<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>)
|
|
60
|
+
<span class="ruby-keyword kw">true</span>
|
|
61
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">AbortedTransaction</span>
|
|
62
|
+
<span class="ruby-keyword kw">ensure</span>
|
|
63
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">delete_later</span>
|
|
64
|
+
<span class="ruby-keyword kw">begin</span>
|
|
65
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">abs_path</span>)
|
|
66
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span>
|
|
67
|
+
<span class="ruby-keyword kw">end</span>
|
|
68
|
+
<span class="ruby-keyword kw">end</span>
|
|
69
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
70
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
71
|
+
</body>
|
|
72
|
+
</html>
|
|
@@ -0,0 +1,39 @@
|
|
|
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>fetch (FSDB::Database)</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/fsdb/database.rb, line 738</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">path</span> = <span class="ruby-value str">"/"</span>)
|
|
15
|
+
<span class="ruby-identifier">abs_path</span> = <span class="ruby-identifier">absolute</span>(<span class="ruby-identifier">path</span>)
|
|
16
|
+
<span class="ruby-identifier">file_id</span> = <span class="ruby-identifier">get_file_id</span>(<span class="ruby-identifier">abs_path</span>)
|
|
17
|
+
<span class="ruby-identifier">object_exclusive</span> <span class="ruby-identifier">file_id</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cache_entry</span><span class="ruby-operator">|</span>
|
|
18
|
+
<span class="ruby-identifier">open_read_lock</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
|
19
|
+
<span class="ruby-identifier">object</span> = <span class="ruby-identifier">cache_object</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">cache_entry</span>)
|
|
20
|
+
<span class="ruby-identifier">cache_entry</span>.<span class="ruby-identifier">stale!</span>
|
|
21
|
+
<span class="ruby-identifier">object</span>
|
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
|
24
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotDirError</span>
|
|
25
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">NotDirError</span>, <span class="ruby-node">"Not a directory - #{path} in #{inspect}"</span>
|
|
26
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MissingFileError</span>
|
|
27
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">PLATFORM_IS_WINDOWS_ME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
28
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-constant">Formats</span><span class="ruby-operator">::</span><span class="ruby-constant">DIR_LOAD_FROM_PATH</span>[<span class="ruby-identifier">abs_path</span>]
|
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
|
30
|
+
<span class="ruby-identifier">clear_entry</span>(<span class="ruby-identifier">file_id</span>)
|
|
31
|
+
<span class="ruby-identifier">default_fetch</span>(<span class="ruby-identifier">path</span>)
|
|
32
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EACCES</span>
|
|
33
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">CAN_OPEN_DIR</span>
|
|
34
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">abs_path</span>)
|
|
35
|
+
<span class="ruby-comment cmt"># on some platforms, opening a dir raises EACCESS</span>
|
|
36
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-constant">Formats</span><span class="ruby-operator">::</span><span class="ruby-constant">DIR_LOAD_FROM_PATH</span>[<span class="ruby-identifier">abs_path</span>]
|
|
37
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
38
|
+
</body>
|
|
39
|
+
</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>dump (FSDB::Database)</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/fsdb/database.rb, line 772</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">f</span>)
|
|
15
|
+
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">format</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">f</span>)
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
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>load (FSDB::Database)</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/fsdb/database.rb, line 767</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">f</span>)
|
|
15
|
+
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">format</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">f</span>)
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
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>dump (FSDB::Database)</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/fsdb/database.rb, line 772</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">f</span>)
|
|
15
|
+
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">format</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">f</span>)
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|