Class: FileD8a
Overview
D8a based on a directory tree.
Instance Attribute Summary collapse
-
#basedir ⇒ Object
readonly
base directory.
Attributes inherited from D8a
Instance Method Summary collapse
-
#delete(d8m) ⇒ Object
Deletes a d8m.
- #each ⇒ Object
-
#initialize(basedir, name = File.basename(basedir)) ⇒ FileD8a
constructor
A new instance of FileD8a.
-
#mode(d8m, d8mattrs = nil) ⇒ Object
:mode attribute.
- #mode=(d8m, mode) ⇒ Object
-
#mtime(d8m, d8mattrs = nil) ⇒ Object
:mtime attribute.
- #mtime=(d8m, mtime) ⇒ Object
-
#read(d8m, &block) ⇒ Object
Reads a d8m.
-
#size(d8m, d8mattrs = nil) ⇒ Object
:size attribute.
-
#write(d8m, &block) ⇒ Object
Writes a d8m.
Methods inherited from D8a
#[], #[]=, #copy, #diff, #diff_d8m, #diffreport, #flush, #name, #sync
Constructor Details
#initialize(basedir, name = File.basename(basedir)) ⇒ FileD8a
Returns a new instance of FileD8a.
10 11 12 13 14 15 16 17 18 |
# File 'lib/d8a/filed8a.rb', line 10 def initialize(basedir, name = File.basename(basedir)) super(name) File.directory?(basedir) || Dir.mkdir(basedir) @basedir = basedir @attrs.push(:size, :mtime, :mode) @id_attrs.push(:size, :mtime) end |
Instance Attribute Details
#basedir ⇒ Object (readonly)
base directory
7 8 9 |
# File 'lib/d8a/filed8a.rb', line 7 def basedir @basedir end |
Instance Method Details
#delete(d8m) ⇒ Object
Deletes a d8m
68 69 70 |
# File 'lib/d8a/filed8a.rb', line 68 def delete(d8m) File.delete(File.join(@basedir, d8m)) end |
#each ⇒ Object
48 49 50 51 52 |
# File 'lib/d8a/filed8a.rb', line 48 def each Find.find(@basedir) do |f| File.file?(f) && yield(f[(@basedir.length + 1)..-1]) end end |
#mode(d8m, d8mattrs = nil) ⇒ Object
:mode attribute
38 39 40 |
# File 'lib/d8a/filed8a.rb', line 38 def mode(d8m, d8mattrs = nil) File.stat(File.join(@basedir, d8m)).mode & 0777 end |
#mode=(d8m, mode) ⇒ Object
42 43 44 |
# File 'lib/d8a/filed8a.rb', line 42 def mode=(d8m, mode) File.chmod(mode, File.join(@basedir, d8m)) end |
#mtime(d8m, d8mattrs = nil) ⇒ Object
:mtime attribute
28 29 30 |
# File 'lib/d8a/filed8a.rb', line 28 def mtime(d8m, d8mattrs = nil) File.mtime(File.join(@basedir, d8m)) end |
#mtime=(d8m, mtime) ⇒ Object
32 33 34 |
# File 'lib/d8a/filed8a.rb', line 32 def mtime=(d8m, mtime) File.utime(mtime, mtime, File.join(@basedir, d8m)) end |
#read(d8m, &block) ⇒ Object
Reads a d8m
56 57 58 |
# File 'lib/d8a/filed8a.rb', line 56 def read(d8m, &block) File.open(File.join(@basedir, d8m), "r", &block) end |
#size(d8m, d8mattrs = nil) ⇒ Object
:size attribute
22 23 24 |
# File 'lib/d8a/filed8a.rb', line 22 def size(d8m, d8mattrs = nil) File.size(File.join(@basedir, d8m)) end |
#write(d8m, &block) ⇒ Object
Writes a d8m
62 63 64 |
# File 'lib/d8a/filed8a.rb', line 62 def write(d8m, &block) File.open(File.join(@basedir, d8m), "w", &block) end |