fsdb 0.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. data/{RELEASE-NOTES → History.txt} +6 -0
  2. data/{README → README.txt} +26 -17
  3. data/examples/flat.rb +146 -0
  4. data/examples/fsdb-example.rb +28 -0
  5. data/examples/rbformat.rb +17 -0
  6. data/examples/yaml2.rb +29 -0
  7. data/junk/OLDRakefile +98 -0
  8. data/junk/OLDRakefile2 +55 -0
  9. data/junk/check-cache.rb +18 -0
  10. data/junk/create-lock.rb +25 -0
  11. data/junk/doc/old-api/classes/FSDB.html +139 -0
  12. data/junk/doc/old-api/classes/FSDB/Database.html +953 -0
  13. data/junk/doc/old-api/classes/FSDB/Database.src/M000029.html +16 -0
  14. data/junk/doc/old-api/classes/FSDB/Database.src/M000030.html +16 -0
  15. data/junk/doc/old-api/classes/FSDB/Database.src/M000031.html +16 -0
  16. data/junk/doc/old-api/classes/FSDB/Database.src/M000032.html +16 -0
  17. data/junk/doc/old-api/classes/FSDB/Database.src/M000033.html +33 -0
  18. data/junk/doc/old-api/classes/FSDB/Database.src/M000034.html +18 -0
  19. data/junk/doc/old-api/classes/FSDB/Database.src/M000035.html +22 -0
  20. data/junk/doc/old-api/classes/FSDB/Database.src/M000036.html +16 -0
  21. data/junk/doc/old-api/classes/FSDB/Database.src/M000037.html +22 -0
  22. data/junk/doc/old-api/classes/FSDB/Database.src/M000038.html +43 -0
  23. data/junk/doc/old-api/classes/FSDB/Database.src/M000039.html +25 -0
  24. data/junk/doc/old-api/classes/FSDB/Database.src/M000040.html +43 -0
  25. data/junk/doc/old-api/classes/FSDB/Database.src/M000041.html +23 -0
  26. data/junk/doc/old-api/classes/FSDB/Database.src/M000042.html +22 -0
  27. data/junk/doc/old-api/classes/FSDB/Database.src/M000043.html +16 -0
  28. data/junk/doc/old-api/classes/FSDB/Database.src/M000044.html +16 -0
  29. data/junk/doc/old-api/classes/FSDB/Database.src/M000045.html +18 -0
  30. data/junk/doc/old-api/classes/FSDB/Database.src/M000046.html +18 -0
  31. data/junk/doc/old-api/classes/FSDB/Database.src/M000047.html +18 -0
  32. data/junk/doc/old-api/classes/FSDB/Database.src/M000048.html +16 -0
  33. data/junk/doc/old-api/classes/FSDB/Database.src/M000049.html +71 -0
  34. data/junk/doc/old-api/classes/FSDB/Database.src/M000050.html +43 -0
  35. data/junk/doc/old-api/classes/FSDB/Database.src/M000051.html +53 -0
  36. data/junk/doc/old-api/classes/FSDB/Database.src/M000052.html +44 -0
  37. data/junk/doc/old-api/classes/FSDB/Database.src/M000053.html +39 -0
  38. data/junk/doc/old-api/classes/FSDB/Database.src/M000054.html +72 -0
  39. data/junk/doc/old-api/classes/FSDB/Database.src/M000055.html +39 -0
  40. data/junk/doc/old-api/classes/FSDB/Database.src/M000056.html +18 -0
  41. data/junk/doc/old-api/classes/FSDB/Database.src/M000057.html +18 -0
  42. data/junk/doc/old-api/classes/FSDB/Database.src/M000058.html +18 -0
  43. data/junk/doc/old-api/classes/FSDB/Database.src/M000059.html +18 -0
  44. data/junk/doc/old-api/classes/FSDB/Database.src/M000060.html +18 -0
  45. data/junk/doc/old-api/classes/FSDB/Database.src/M000061.html +23 -0
  46. data/junk/doc/old-api/classes/FSDB/Database.src/M000062.html +23 -0
  47. data/junk/doc/old-api/classes/FSDB/Database.src/M000063.html +18 -0
  48. data/junk/doc/old-api/classes/FSDB/Database.src/M000064.html +18 -0
  49. data/junk/doc/old-api/classes/FSDB/Database/AbortedTransaction.html +118 -0
  50. data/junk/doc/old-api/classes/FSDB/Database/CreateFileError.html +120 -0
  51. data/junk/doc/old-api/classes/FSDB/Database/DirIsImmutableError.html +117 -0
  52. data/junk/doc/old-api/classes/FSDB/Database/DirNotEmptyError.html +117 -0
  53. data/junk/doc/old-api/classes/FSDB/Database/FormatError.html +117 -0
  54. data/junk/doc/old-api/classes/FSDB/Database/MissingFileError.html +117 -0
  55. data/junk/doc/old-api/classes/FSDB/Database/MissingObjectError.html +117 -0
  56. data/junk/doc/old-api/classes/FSDB/Database/NotDirError.html +118 -0
  57. data/junk/doc/old-api/classes/FSDB/Database/PathComponentError.html +120 -0
  58. data/junk/doc/old-api/classes/FSDB/DatabaseDebuggable.html +148 -0
  59. data/junk/doc/old-api/classes/FSDB/DatabaseDebuggable.src/M000005.html +21 -0
  60. data/junk/doc/old-api/classes/FSDB/DatabaseDebuggable.src/M000007.html +21 -0
  61. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.html +210 -0
  62. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000006.html +22 -0
  63. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000007.html +22 -0
  64. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000008.html +22 -0
  65. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000009.html +22 -0
  66. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000010.html +22 -0
  67. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000011.html +22 -0
  68. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000012.html +22 -0
  69. data/junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000013.html +22 -0
  70. data/junk/doc/old-api/classes/FSDB/ForkSafely.html +126 -0
  71. data/junk/doc/old-api/classes/FSDB/Modex.html +237 -0
  72. data/junk/doc/old-api/classes/FSDB/Modex.src/M000024.html +21 -0
  73. data/junk/doc/old-api/classes/FSDB/Modex.src/M000025.html +30 -0
  74. data/junk/doc/old-api/classes/FSDB/Modex.src/M000026.html +21 -0
  75. data/junk/doc/old-api/classes/FSDB/Modex.src/M000027.html +30 -0
  76. data/junk/doc/old-api/classes/FSDB/Modex.src/M000028.html +44 -0
  77. data/junk/doc/old-api/classes/FSDB/Modex.src/M000029.html +26 -0
  78. data/junk/doc/old-api/classes/FSDB/Modex.src/M000030.html +48 -0
  79. data/junk/doc/old-api/classes/FSDB/Modex/ForkSafely.html +105 -0
  80. data/junk/doc/old-api/classes/FSDB/Mutex.html +244 -0
  81. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000018.html +19 -0
  82. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000019.html +18 -0
  83. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000020.html +19 -0
  84. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000021.html +18 -0
  85. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000022.html +23 -0
  86. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000023.html +30 -0
  87. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000024.html +26 -0
  88. data/junk/doc/old-api/classes/FSDB/Mutex.src/M000025.html +21 -0
  89. data/junk/doc/old-api/classes/FSDB/Mutex/ForkSafely.html +105 -0
  90. data/junk/doc/old-api/classes/FSDB/PathUtilities.html +257 -0
  91. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000012.html +23 -0
  92. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000013.html +18 -0
  93. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000014.html +23 -0
  94. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000015.html +18 -0
  95. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000016.html +18 -0
  96. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000017.html +22 -0
  97. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000018.html +23 -0
  98. data/junk/doc/old-api/classes/FSDB/PathUtilities.src/M000019.html +18 -0
  99. data/junk/doc/old-api/classes/FSDB/PathUtilities/InvalidPathError.html +111 -0
  100. data/junk/doc/old-api/classes/File.html +272 -0
  101. data/junk/doc/old-api/classes/File.src/M000001.html +17 -0
  102. data/junk/doc/old-api/classes/File.src/M000002.html +17 -0
  103. data/junk/doc/old-api/classes/File.src/M000003.html +20 -0
  104. data/junk/doc/old-api/classes/File.src/M000004.html +20 -0
  105. data/junk/doc/old-api/classes/File.src/M000005.html +32 -0
  106. data/junk/doc/old-api/classes/File.src/M000006.html +32 -0
  107. data/junk/doc/old-api/created.rid +1 -0
  108. data/junk/doc/old-api/files/README.html +112 -0
  109. data/junk/doc/old-api/files/RELEASE-NOTES.html +233 -0
  110. data/junk/doc/old-api/files/fsdb_txt.html +888 -0
  111. data/junk/doc/old-api/files/lib/fsdb/database_rb.html +115 -0
  112. data/junk/doc/old-api/files/lib/fsdb/file-lock_rb.html +109 -0
  113. data/junk/doc/old-api/files/lib/fsdb/modex_rb.html +121 -0
  114. data/junk/doc/old-api/files/lib/fsdb/mutex_rb.html +108 -0
  115. data/junk/doc/old-api/files/lib/fsdb/util_rb.html +108 -0
  116. data/junk/doc/old-api/fr_class_index.html +47 -0
  117. data/junk/doc/old-api/fr_file_index.html +34 -0
  118. data/junk/doc/old-api/fr_method_index.html +90 -0
  119. data/junk/doc/old-api/index.html +24 -0
  120. data/junk/doc/old-api/rdoc-style.css +208 -0
  121. data/junk/file-lock-nb.rb +15 -0
  122. data/junk/fl.rb +144 -0
  123. data/junk/flock-test.rb +39 -0
  124. data/junk/fsdb.kateproject +47 -0
  125. data/junk/fsdb.prj +196 -0
  126. data/junk/fsdb.sf +46 -0
  127. data/junk/insert-dir.rb +48 -0
  128. data/junk/lock-test-bug.rb +150 -0
  129. data/junk/lock-test-too-simple.rb +136 -0
  130. data/junk/lock-test.rb +151 -0
  131. data/{script → junk}/mkrdoc +0 -0
  132. data/junk/restore-fsdb.rb +37 -0
  133. data/junk/rf.txt +5 -0
  134. data/junk/solaris-bug-fixed.rb +184 -0
  135. data/junk/solaris-bug.rb +182 -0
  136. data/junk/solaris-bug.txt +43 -0
  137. data/junk/sync.rb +327 -0
  138. data/junk/test-file-lock.html +86 -0
  139. data/junk/test-file-lock.rb +84 -0
  140. data/junk/test-processes.rb +131 -0
  141. data/junk/test-threads.rb +113 -0
  142. data/junk/wiki-mutex.rb +108 -0
  143. data/lib/fsdb/database.rb +5 -3
  144. data/lib/fsdb/delegatable.rb +21 -0
  145. data/lib/fsdb/faster-modex.rb +223 -0
  146. data/lib/fsdb/faster-mutex.rb +138 -0
  147. data/lib/fsdb/mutex.rb +4 -1
  148. data/lib/fsdb/persistent.rb +91 -0
  149. data/lib/fsdb/read-write-object.rb +36 -0
  150. data/lib/fsdb/server.rb +44 -0
  151. data/misc/fsdb-blorubu.txt +47 -0
  152. data/misc/mtime-and-file-id.txt +23 -0
  153. data/misc/posixlock.txt +148 -0
  154. data/rakefile +39 -0
  155. data/tasks/ann.rake +80 -0
  156. data/tasks/bones.rake +20 -0
  157. data/tasks/gem.rake +201 -0
  158. data/tasks/git.rake +40 -0
  159. data/tasks/notes.rake +27 -0
  160. data/tasks/post_load.rake +34 -0
  161. data/tasks/rdoc.rake +51 -0
  162. data/tasks/rubyforge.rake +55 -0
  163. data/tasks/setup.rb +292 -0
  164. data/tasks/spec.rake +54 -0
  165. data/tasks/svn.rake +47 -0
  166. data/tasks/test.rake +40 -0
  167. data/tasks/zentest.rake +36 -0
  168. data/test/err.txt +31 -0
  169. data/test/runs.rb +8 -0
  170. data/test/test-file-lock.rb +78 -0
  171. data/test/test-util.rb +1 -0
  172. data/test/trap.rb +31 -0
  173. metadata +198 -35
  174. data/Manifest +0 -36
  175. data/Rakefile +0 -10
  176. data/fsdb.gemspec +0 -113
data/tasks/svn.rake ADDED
@@ -0,0 +1,47 @@
1
+
2
+ if HAVE_SVN
3
+
4
+ unless PROJ.svn.root
5
+ info = %x/svn info ./
6
+ m = %r/^Repository Root:\s+(.*)$/.match(info)
7
+ PROJ.svn.root = (m.nil? ? '' : m[1])
8
+ end
9
+ PROJ.svn.root = File.join(PROJ.svn.root, PROJ.svn.path) unless PROJ.svn.path.empty?
10
+
11
+ namespace :svn do
12
+
13
+ # A prerequisites task that all other tasks depend upon
14
+ task :prereqs
15
+
16
+ desc 'Show tags from the SVN repository'
17
+ task :show_tags => 'svn:prereqs' do |t|
18
+ tags = %x/svn list #{File.join(PROJ.svn.root, PROJ.svn.tags)}/
19
+ tags.gsub!(%r/\/$/, '')
20
+ tags = tags.split("\n").sort {|a,b| b <=> a}
21
+ puts tags
22
+ end
23
+
24
+ desc 'Create a new tag in the SVN repository'
25
+ task :create_tag => 'svn:prereqs' do |t|
26
+ v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
27
+ abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
28
+
29
+ svn = PROJ.svn
30
+ trunk = File.join(svn.root, svn.trunk)
31
+ tag = "%s-%s" % [PROJ.name, PROJ.version]
32
+ tag = File.join(svn.root, svn.tags, tag)
33
+ msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
34
+
35
+ puts "Creating SVN tag '#{tag}'"
36
+ unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
37
+ abort "Tag creation failed"
38
+ end
39
+ end
40
+
41
+ end # namespace :svn
42
+
43
+ task 'gem:release' => 'svn:create_tag'
44
+
45
+ end # if PROJ.svn.path
46
+
47
+ # EOF
data/tasks/test.rake ADDED
@@ -0,0 +1,40 @@
1
+
2
+ if test(?e, PROJ.test.file) or not PROJ.test.files.to_a.empty?
3
+ require 'rake/testtask'
4
+
5
+ namespace :test do
6
+
7
+ Rake::TestTask.new(:run) do |t|
8
+ t.libs = PROJ.libs
9
+ t.test_files = if test(?f, PROJ.test.file) then [PROJ.test.file]
10
+ else PROJ.test.files end
11
+ t.ruby_opts += PROJ.ruby_opts
12
+ t.ruby_opts += PROJ.test.opts
13
+ end
14
+
15
+ if HAVE_RCOV
16
+ desc 'Run rcov on the unit tests'
17
+ task :rcov => :clobber_rcov do
18
+ opts = PROJ.rcov.opts.dup << '-o' << PROJ.rcov.dir
19
+ opts = opts.join(' ')
20
+ files = if test(?f, PROJ.test.file) then [PROJ.test.file]
21
+ else PROJ.test.files end
22
+ files = files.join(' ')
23
+ sh "#{RCOV} #{files} #{opts}"
24
+ end
25
+
26
+ task :clobber_rcov do
27
+ rm_r 'coverage' rescue nil
28
+ end
29
+ end
30
+
31
+ end # namespace :test
32
+
33
+ desc 'Alias to test:run'
34
+ task :test => 'test:run'
35
+
36
+ task :clobber => 'test:clobber_rcov' if HAVE_RCOV
37
+
38
+ end
39
+
40
+ # EOF
@@ -0,0 +1,36 @@
1
+ if HAVE_ZENTEST
2
+
3
+ # --------------------------------------------------------------------------
4
+ if test(?e, PROJ.test.file) or not PROJ.test.files.to_a.empty?
5
+ require 'autotest'
6
+
7
+ namespace :test do
8
+ task :autotest do
9
+ Autotest.run
10
+ end
11
+ end
12
+
13
+ desc "Run the autotest loop"
14
+ task :autotest => 'test:autotest'
15
+
16
+ end # if test
17
+
18
+ # --------------------------------------------------------------------------
19
+ if HAVE_SPEC_RAKE_SPECTASK and not PROJ.spec.files.to_a.empty?
20
+ require 'autotest/rspec'
21
+
22
+ namespace :spec do
23
+ task :autotest do
24
+ load '.autotest' if test(?f, '.autotest')
25
+ Autotest::Rspec.run
26
+ end
27
+ end
28
+
29
+ desc "Run the autotest loop"
30
+ task :autotest => 'spec:autotest'
31
+
32
+ end # if rspec
33
+
34
+ end # if HAVE_ZENTEST
35
+
36
+ # EOF
data/test/err.txt ADDED
@@ -0,0 +1,31 @@
1
+ [corolla ~/ruby/prj/fsdb-0.4/test] nice -n 9 ruby test-concurrency.rb 10 1 10000
2
+ [=============================> ] 49.55800% done/usr/local/lib/ruby/1.8/yaml.rb:193:in `end_object': method `write' called on terminated object (0x804e25c) (NotImplementedError)
3
+ from /usr/local/lib/ruby/1.8/yaml.rb:193:in `quick_emit'
4
+ from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:55:in `to_yaml'
5
+ from /usr/local/lib/ruby/site_ruby/1.8/fsdb/formats.rb:138
6
+ from /usr/local/lib/ruby/site_ruby/1.8/fsdb/formats.rb:138:in `[]'
7
+ from /usr/local/lib/ruby/site_ruby/1.8/fsdb/formats.rb:60:in `dump'
8
+ from /usr/local/lib/ruby/site_ruby/1.8/fsdb/database.rb:744:in `dump'
9
+ from /usr/local/lib/ruby/site_ruby/1.8/fsdb/database.rb:621:in `[]='
10
+ from /usr/local/lib/ruby/site_ruby/1.8/fsdb/database.rb:620:in `open_write_lock'
11
+ ... 38 levels...
12
+ from test-concurrency.rb:58:in `start_processes'
13
+ from test-concurrency.rb:37:in `manage_children'
14
+ from test-concurrency.rb:31:in `run'
15
+ from test-concurrency.rb:354
16
+ test-concurrency.rb:265:in `status_meter': undefined method `[]' for false:FalseClass (NoMethodError)
17
+ from test-concurrency.rb:265:in `sum'
18
+ from test-concurrency.rb:14:in `inject'
19
+ from test-concurrency.rb:14:in `each'
20
+ from test-concurrency.rb:14:in `inject'
21
+ from test-concurrency.rb:14:in `sum'
22
+ from test-concurrency.rb:265:in `status_meter'
23
+ from test-concurrency.rb:287:in `monitor'
24
+ from test-concurrency.rb:286:in `loop'
25
+ from test-concurrency.rb:289:in `monitor'
26
+ from test-concurrency.rb:285:in `initialize'
27
+ from test-concurrency.rb:285:in `new'
28
+ from test-concurrency.rb:285:in `monitor'
29
+ from test-concurrency.rb:38:in `manage_children'
30
+ from test-concurrency.rb:31:in `run'
31
+ from test-concurrency.rb:354
data/test/runs.rb ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ catch :failure do
3
+ 1000.times do
4
+ result = system "nice -n 19 test-concurrency.rb 1 1 1000"
5
+ throw :failure unless result
6
+ end
7
+ puts "All runs finished ok."
8
+ end
@@ -0,0 +1,78 @@
1
+ if ARGV.delete '-p'
2
+ require '../posixlock/posixlock'
3
+ end
4
+
5
+ $stdout.sync = true
6
+ $stderr.sync = true
7
+
8
+ Thread.abort_on_exception = true
9
+
10
+ # Apparently, locks are per descriptor. This deadlocks w/old flock, but not
11
+ # with posix (fcntl) flock:
12
+ #
13
+ File.open("/tmp/file-lock-test", "w") do |fd1|
14
+ File.open("/tmp/file-lock-test", "r") do |fd2|
15
+ fd1.write "from the writer 0"
16
+ fd1.flock(File::LOCK_EX)
17
+ fd2.flock(File::LOCK_SH)
18
+ end
19
+ end
20
+ puts "EXITING"; exit
21
+
22
+ thread1 = Thread.new do
23
+ 100.times do |i|
24
+ Thread.critical = true
25
+ File.open("/tmp/file-lock-test", "w") do |fd|
26
+ period = 0.001
27
+ until fd.flock(File::LOCK_EX|File::LOCK_NB)
28
+ Thread.critical = false
29
+ sleep period
30
+ period *= 2 if period < 1
31
+ Thread.critical = true
32
+ end
33
+ puts "Got write lock"
34
+ Thread.critical = false
35
+
36
+ fd.write "GARBAGE "*5
37
+ fd.rewind
38
+ sleep 0.0001
39
+ fd.write "from the writer #{i}"
40
+
41
+ Thread.critical = true
42
+ puts "Releasing write lock"
43
+ fd.flock(File::LOCK_UN)
44
+ Thread.critical = false
45
+ end
46
+ end
47
+ end
48
+
49
+ thread2 = Thread.new do
50
+ 100.times do
51
+ Thread.critical = true
52
+ File.open("/tmp/file-lock-test", "r") do |fd|
53
+ period = 0.001
54
+ until fd.flock(File::LOCK_SH|File::LOCK_NB)
55
+ Thread.critical = false
56
+ sleep period
57
+ period *= 2 if period < 1
58
+ Thread.critical = true
59
+ end
60
+ puts "Got read lock"
61
+ Thread.critical = false
62
+
63
+ s = fd.read
64
+ unless s =~ /^from the writer \d+/
65
+ raise "String was #{s.inspect}"
66
+ end
67
+
68
+ Thread.critical = true
69
+ puts "Releasing read lock"
70
+ fd.flock(File::LOCK_UN)
71
+ Thread.critical = false
72
+ end
73
+ end
74
+ end
75
+
76
+ thread1.join
77
+ thread2.join
78
+ puts "Done."
data/test/test-util.rb ADDED
@@ -0,0 +1 @@
1
+ #!/usr/bin/env ruby
data/test/trap.rb ADDED
@@ -0,0 +1,31 @@
1
+ trap 'INT' do
2
+ puts "Parent trap"
3
+ end
4
+
5
+ if false
6
+
7
+ fork do
8
+ trap "INT" do
9
+ puts "Child trap"
10
+ end
11
+ sleep
12
+ end
13
+
14
+ Process.wait
15
+
16
+ else
17
+
18
+ thread = Thread.new do
19
+ system %{
20
+ ruby -e 'trap "INT" do
21
+ puts "Child trap"
22
+ end
23
+ sleep'
24
+ }
25
+ end
26
+
27
+ thread.join
28
+
29
+ end
30
+
31
+ # same behavior on linux, solaris7, qnx6
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fsdb
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.5"
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel VanderWerf
@@ -9,83 +9,246 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-11 00:00:00 -06:00
12
+ date: 2009-07-18 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: echoe
16
+ name: bones
17
17
  type: :development
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: "0"
23
+ version: 2.5.1
24
24
  version:
25
- description: FSDB is a file system data base. FSDB provides a thread-safe, process-safe Database class which uses the native file system as its back end and allows multiple file formats and serialization methods. Users access objects in terms of their paths relative to the base directory of the database. It's very light weight (the state of a Database is essentially just a path string, and code size is very small, under 1K lines, all ruby).
26
- email: vjoel@users.sourceforge.net'
25
+ description: |
26
+ A file system data base. Provides a thread-safe, process-safe Database class. Each entry is a separate file referenced by its relative path. Allows multiple file formats and serialization methods. Pure ruby and very light weight.
27
+
28
+ email: vjoel@users.sourceforge.net
27
29
  executables: []
28
30
 
29
31
  extensions:
30
32
  - ext/fsdb/extconf.rb
31
33
  extra_rdoc_files:
32
- - lib/fsdb/database.rb
33
- - lib/fsdb/file-lock.rb
34
- - lib/fsdb/modex.rb
35
- - lib/fsdb/mutex.rb
36
- - lib/fsdb/util.rb
37
- - README
38
- - RELEASE-NOTES
39
- - test/test-modex.rb
40
- - test/test-mutex.rb
34
+ - History.txt
35
+ - README.txt
36
+ - junk/rf.txt
37
+ - junk/solaris-bug.txt
38
+ - misc/fsdb-blorubu.txt
39
+ - misc/mtime-and-file-id.txt
40
+ - misc/posixlock.txt
41
+ - test/err.txt
41
42
  files:
43
+ - History.txt
44
+ - README.txt
42
45
  - bench/bench.rb
43
46
  - examples/client.rb
47
+ - examples/flat.rb
44
48
  - examples/formats.rb
49
+ - examples/fsdb-example.rb
45
50
  - examples/fsdb-examples.rb
46
51
  - examples/indexes.rb
52
+ - examples/rbformat.rb
47
53
  - examples/server.rb
48
54
  - examples/simple.rb
49
55
  - examples/yaml.rb
56
+ - examples/yaml2.rb
57
+ - ext/fsdb/MANIFEST
50
58
  - ext/fsdb/extconf.rb
51
59
  - ext/fsdb/fcntl-lock.c
52
- - ext/fsdb/MANIFEST
60
+ - junk/OLDRakefile
61
+ - junk/OLDRakefile2
62
+ - junk/check-cache.rb
63
+ - junk/create-lock.rb
64
+ - junk/doc/old-api/classes/FSDB.html
65
+ - junk/doc/old-api/classes/FSDB/Database.html
66
+ - junk/doc/old-api/classes/FSDB/Database.src/M000029.html
67
+ - junk/doc/old-api/classes/FSDB/Database.src/M000030.html
68
+ - junk/doc/old-api/classes/FSDB/Database.src/M000031.html
69
+ - junk/doc/old-api/classes/FSDB/Database.src/M000032.html
70
+ - junk/doc/old-api/classes/FSDB/Database.src/M000033.html
71
+ - junk/doc/old-api/classes/FSDB/Database.src/M000034.html
72
+ - junk/doc/old-api/classes/FSDB/Database.src/M000035.html
73
+ - junk/doc/old-api/classes/FSDB/Database.src/M000036.html
74
+ - junk/doc/old-api/classes/FSDB/Database.src/M000037.html
75
+ - junk/doc/old-api/classes/FSDB/Database.src/M000038.html
76
+ - junk/doc/old-api/classes/FSDB/Database.src/M000039.html
77
+ - junk/doc/old-api/classes/FSDB/Database.src/M000040.html
78
+ - junk/doc/old-api/classes/FSDB/Database.src/M000041.html
79
+ - junk/doc/old-api/classes/FSDB/Database.src/M000042.html
80
+ - junk/doc/old-api/classes/FSDB/Database.src/M000043.html
81
+ - junk/doc/old-api/classes/FSDB/Database.src/M000044.html
82
+ - junk/doc/old-api/classes/FSDB/Database.src/M000045.html
83
+ - junk/doc/old-api/classes/FSDB/Database.src/M000046.html
84
+ - junk/doc/old-api/classes/FSDB/Database.src/M000047.html
85
+ - junk/doc/old-api/classes/FSDB/Database.src/M000048.html
86
+ - junk/doc/old-api/classes/FSDB/Database.src/M000049.html
87
+ - junk/doc/old-api/classes/FSDB/Database.src/M000050.html
88
+ - junk/doc/old-api/classes/FSDB/Database.src/M000051.html
89
+ - junk/doc/old-api/classes/FSDB/Database.src/M000052.html
90
+ - junk/doc/old-api/classes/FSDB/Database.src/M000053.html
91
+ - junk/doc/old-api/classes/FSDB/Database.src/M000054.html
92
+ - junk/doc/old-api/classes/FSDB/Database.src/M000055.html
93
+ - junk/doc/old-api/classes/FSDB/Database.src/M000056.html
94
+ - junk/doc/old-api/classes/FSDB/Database.src/M000057.html
95
+ - junk/doc/old-api/classes/FSDB/Database.src/M000058.html
96
+ - junk/doc/old-api/classes/FSDB/Database.src/M000059.html
97
+ - junk/doc/old-api/classes/FSDB/Database.src/M000060.html
98
+ - junk/doc/old-api/classes/FSDB/Database.src/M000061.html
99
+ - junk/doc/old-api/classes/FSDB/Database.src/M000062.html
100
+ - junk/doc/old-api/classes/FSDB/Database.src/M000063.html
101
+ - junk/doc/old-api/classes/FSDB/Database.src/M000064.html
102
+ - junk/doc/old-api/classes/FSDB/Database/AbortedTransaction.html
103
+ - junk/doc/old-api/classes/FSDB/Database/CreateFileError.html
104
+ - junk/doc/old-api/classes/FSDB/Database/DirIsImmutableError.html
105
+ - junk/doc/old-api/classes/FSDB/Database/DirNotEmptyError.html
106
+ - junk/doc/old-api/classes/FSDB/Database/FormatError.html
107
+ - junk/doc/old-api/classes/FSDB/Database/MissingFileError.html
108
+ - junk/doc/old-api/classes/FSDB/Database/MissingObjectError.html
109
+ - junk/doc/old-api/classes/FSDB/Database/NotDirError.html
110
+ - junk/doc/old-api/classes/FSDB/Database/PathComponentError.html
111
+ - junk/doc/old-api/classes/FSDB/DatabaseDebuggable.html
112
+ - junk/doc/old-api/classes/FSDB/DatabaseDebuggable.src/M000005.html
113
+ - junk/doc/old-api/classes/FSDB/DatabaseDebuggable.src/M000007.html
114
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.html
115
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000006.html
116
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000007.html
117
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000008.html
118
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000009.html
119
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000010.html
120
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000011.html
121
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000012.html
122
+ - junk/doc/old-api/classes/FSDB/DirectoryIterators.src/M000013.html
123
+ - junk/doc/old-api/classes/FSDB/ForkSafely.html
124
+ - junk/doc/old-api/classes/FSDB/Modex.html
125
+ - junk/doc/old-api/classes/FSDB/Modex.src/M000024.html
126
+ - junk/doc/old-api/classes/FSDB/Modex.src/M000025.html
127
+ - junk/doc/old-api/classes/FSDB/Modex.src/M000026.html
128
+ - junk/doc/old-api/classes/FSDB/Modex.src/M000027.html
129
+ - junk/doc/old-api/classes/FSDB/Modex.src/M000028.html
130
+ - junk/doc/old-api/classes/FSDB/Modex.src/M000029.html
131
+ - junk/doc/old-api/classes/FSDB/Modex.src/M000030.html
132
+ - junk/doc/old-api/classes/FSDB/Modex/ForkSafely.html
133
+ - junk/doc/old-api/classes/FSDB/Mutex.html
134
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000018.html
135
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000019.html
136
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000020.html
137
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000021.html
138
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000022.html
139
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000023.html
140
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000024.html
141
+ - junk/doc/old-api/classes/FSDB/Mutex.src/M000025.html
142
+ - junk/doc/old-api/classes/FSDB/Mutex/ForkSafely.html
143
+ - junk/doc/old-api/classes/FSDB/PathUtilities.html
144
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000012.html
145
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000013.html
146
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000014.html
147
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000015.html
148
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000016.html
149
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000017.html
150
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000018.html
151
+ - junk/doc/old-api/classes/FSDB/PathUtilities.src/M000019.html
152
+ - junk/doc/old-api/classes/FSDB/PathUtilities/InvalidPathError.html
153
+ - junk/doc/old-api/classes/File.html
154
+ - junk/doc/old-api/classes/File.src/M000001.html
155
+ - junk/doc/old-api/classes/File.src/M000002.html
156
+ - junk/doc/old-api/classes/File.src/M000003.html
157
+ - junk/doc/old-api/classes/File.src/M000004.html
158
+ - junk/doc/old-api/classes/File.src/M000005.html
159
+ - junk/doc/old-api/classes/File.src/M000006.html
160
+ - junk/doc/old-api/created.rid
161
+ - junk/doc/old-api/files/README.html
162
+ - junk/doc/old-api/files/RELEASE-NOTES.html
163
+ - junk/doc/old-api/files/fsdb_txt.html
164
+ - junk/doc/old-api/files/lib/fsdb/database_rb.html
165
+ - junk/doc/old-api/files/lib/fsdb/file-lock_rb.html
166
+ - junk/doc/old-api/files/lib/fsdb/modex_rb.html
167
+ - junk/doc/old-api/files/lib/fsdb/mutex_rb.html
168
+ - junk/doc/old-api/files/lib/fsdb/util_rb.html
169
+ - junk/doc/old-api/fr_class_index.html
170
+ - junk/doc/old-api/fr_file_index.html
171
+ - junk/doc/old-api/fr_method_index.html
172
+ - junk/doc/old-api/index.html
173
+ - junk/doc/old-api/rdoc-style.css
174
+ - junk/file-lock-nb.rb
175
+ - junk/fl.rb
176
+ - junk/flock-test.rb
177
+ - junk/fsdb.kateproject
178
+ - junk/fsdb.prj
179
+ - junk/fsdb.sf
180
+ - junk/insert-dir.rb
181
+ - junk/lock-test-bug.rb
182
+ - junk/lock-test-too-simple.rb
183
+ - junk/lock-test.rb
184
+ - junk/mkrdoc
185
+ - junk/restore-fsdb.rb
186
+ - junk/rf.txt
187
+ - junk/solaris-bug-fixed.rb
188
+ - junk/solaris-bug.rb
189
+ - junk/solaris-bug.txt
190
+ - junk/sync.rb
191
+ - junk/test-file-lock.html
192
+ - junk/test-file-lock.rb
193
+ - junk/test-processes.rb
194
+ - junk/test-threads.rb
195
+ - junk/wiki-mutex.rb
196
+ - lib/fsdb.rb
53
197
  - lib/fsdb/compat.rb
54
198
  - lib/fsdb/database.rb
199
+ - lib/fsdb/delegatable.rb
200
+ - lib/fsdb/faster-modex.rb
201
+ - lib/fsdb/faster-mutex.rb
55
202
  - lib/fsdb/file-lock.rb
56
- - lib/fsdb/formats/yaml.rb
57
203
  - lib/fsdb/formats.rb
204
+ - lib/fsdb/formats/yaml.rb
58
205
  - lib/fsdb/modex.rb
59
206
  - lib/fsdb/mutex.rb
60
207
  - lib/fsdb/nonpersistent-attr.rb
208
+ - lib/fsdb/persistent.rb
61
209
  - lib/fsdb/platform.rb
210
+ - lib/fsdb/read-write-object.rb
211
+ - lib/fsdb/server.rb
62
212
  - lib/fsdb/util.rb
63
- - lib/fsdb.rb
64
- - Manifest
65
- - Rakefile
66
- - README
67
- - RELEASE-NOTES
68
- - script/mkrdoc
213
+ - misc/fsdb-blorubu.txt
214
+ - misc/mtime-and-file-id.txt
215
+ - misc/posixlock.txt
216
+ - rakefile
217
+ - tasks/ann.rake
218
+ - tasks/bones.rake
219
+ - tasks/gem.rake
220
+ - tasks/git.rake
221
+ - tasks/notes.rake
222
+ - tasks/post_load.rake
223
+ - tasks/rdoc.rake
224
+ - tasks/rubyforge.rake
225
+ - tasks/setup.rb
226
+ - tasks/spec.rake
227
+ - tasks/svn.rake
228
+ - tasks/test.rake
229
+ - tasks/zentest.rake
230
+ - test/err.txt
231
+ - test/runs.rb
69
232
  - test/test-all.rb
233
+ - test/test-concurrency.rb
70
234
  - test/test-concurrency/init.rb
71
235
  - test/test-concurrency/test-object.rb
72
- - test/test-concurrency.rb
236
+ - test/test-file-lock.rb
73
237
  - test/test-formats.rb
74
238
  - test/test-fsdb.rb
75
239
  - test/test-modex.rb
76
240
  - test/test-mutex.rb
241
+ - test/test-util.rb
77
242
  - test/test.rb
78
- - fsdb.gemspec
243
+ - test/trap.rb
79
244
  has_rdoc: true
80
245
  homepage: http://rubyforge.org/projects/fsdb/
246
+ licenses: []
247
+
81
248
  post_install_message:
82
249
  rdoc_options:
83
- - --line-numbers
84
- - --inline-source
85
- - --title
86
- - Fsdb
87
250
  - --main
88
- - README
251
+ - README.txt
89
252
  require_paths:
90
253
  - lib
91
254
  - ext
@@ -99,14 +262,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
262
  requirements:
100
263
  - - ">="
101
264
  - !ruby/object:Gem::Version
102
- version: "1.2"
265
+ version: "0"
103
266
  version:
104
267
  requirements: []
105
268
 
106
- rubyforge_project: FSDB
107
- rubygems_version: 1.2.0
269
+ rubyforge_project: fsdb
270
+ rubygems_version: 1.3.4
108
271
  signing_key:
109
- specification_version: 2
110
- summary: FSDB is a file system data base. FSDB provides a thread-safe, process-safe Database class which uses the native file system as its back end and allows multiple file formats and serialization methods. Users access objects in terms of their paths relative to the base directory of the database. It's very light weight (the state of a Database is essentially just a path string, and code size is very small, under 1K lines, all ruby).
272
+ specification_version: 3
273
+ summary: File System Database
111
274
  test_files: []
112
275