Class: Vfs::Entry
- Inherits:
-
Object
show all
- Defined in:
- lib/vfs/entries/entry.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(*args) ⇒ Entry
Returns a new instance of Entry.
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/vfs/entries/entry.rb', line 5
def initialize *args
if args.size == 1 and args.first.is_a? Entry
entry = args.first
@path_cache = entry.path_cache
@driver, @path = entry.driver, entry.path
else
driver, path = *args
@path_cache = Path.new path
@driver, @path = driver, path_cache.to_s
end
raise "driver not defined!" unless self.driver
end
|
Instance Attribute Details
#driver ⇒ Object
Returns the value of attribute driver.
3
4
5
|
# File 'lib/vfs/entries/entry.rb', line 3
def driver
@driver
end
|
#path ⇒ Object
Returns the value of attribute path.
3
4
5
|
# File 'lib/vfs/entries/entry.rb', line 3
def path
@path
end
|
#path_cache ⇒ Object
Returns the value of attribute path_cache.
3
4
5
|
# File 'lib/vfs/entries/entry.rb', line 3
def path_cache
@path_cache
end
|
Instance Method Details
#==(other) ⇒ Object
103
104
105
106
|
# File 'lib/vfs/entries/entry.rb', line 103
def == other
return false unless other.is_a? Entry
driver == other.driver and path == other.path
end
|
#created_at ⇒ Object
71
|
# File 'lib/vfs/entries/entry.rb', line 71
def created_at; get :created_at end
|
#destroy(*args) ⇒ Object
117
|
# File 'lib/vfs/entries/entry.rb', line 117
def destroy *args; delete *args end
|
#dir(path = nil) ⇒ Object
Also known as:
to_dir
25
26
27
28
29
30
31
32
|
# File 'lib/vfs/entries/entry.rb', line 25
def dir path = nil
if path
new_path = path_cache + path
Dir.new driver, new_path
else
Dir.new self
end
end
|
#dir? ⇒ Boolean
69
|
# File 'lib/vfs/entries/entry.rb', line 69
def dir?; !!get(:dir) end
|
#entry(path = nil) ⇒ Object
Also known as:
to_entry
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/vfs/entries/entry.rb', line 45
def entry path = nil
entry = if path
new_path = path_cache + path
klass = new_path.probably_dir? ? Dir : UniversalEntry
klass.new driver, new_path
else
UniversalEntry.new self
end
EntryProxy.new entry
end
|
#eql?(other) ⇒ Boolean
112
113
114
115
|
# File 'lib/vfs/entries/entry.rb', line 112
def eql? other
return false unless other.class == self.class
driver.eql?(other.driver) and path.eql?(other.path)
end
|
#file(path = nil) ⇒ Object
Also known as:
to_file
35
36
37
38
39
40
41
42
|
# File 'lib/vfs/entries/entry.rb', line 35
def file path = nil
if path
new_path = path_cache + path
File.new driver, new_path
else
File.new self
end
end
|
#file? ⇒ Boolean
70
|
# File 'lib/vfs/entries/entry.rb', line 70
def file?; !!get(:file) end
|
#get(attr_name = nil) ⇒ Object
59
60
61
62
|
# File 'lib/vfs/entries/entry.rb', line 59
def get attr_name = nil
attrs = driver.open{driver.attributes(path)}
(attr_name and attrs) ? attrs[attr_name] : attrs
end
|
#hash ⇒ Object
108
109
110
|
# File 'lib/vfs/entries/entry.rb', line 108
def hash
driver.hash + path.hash
end
|
#inspect ⇒ Object
Also known as:
to_s
98
99
100
|
# File 'lib/vfs/entries/entry.rb', line 98
def inspect
"#{driver}#{':' unless driver.to_s.empty?}#{path}"
end
|
#local? ⇒ Boolean
92
93
94
|
# File 'lib/vfs/entries/entry.rb', line 92
def local?
driver.local?
end
|
#name ⇒ Object
76
77
78
|
# File 'lib/vfs/entries/entry.rb', line 76
def name
path_cache.name
end
|
#parent ⇒ Object
19
20
21
|
# File 'lib/vfs/entries/entry.rb', line 19
def parent
Dir.new(driver, path_cache.parent)
end
|
#remove(*args) ⇒ Object
118
|
# File 'lib/vfs/entries/entry.rb', line 118
def remove *args; delete *args end
|
#set(options) ⇒ Object
64
65
66
67
|
# File 'lib/vfs/entries/entry.rb', line 64
def set options
not_implemented
end
|
#tmp(&block) ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/vfs/entries/entry.rb', line 80
def tmp &block
driver.open do
if block
driver.tmp do |path|
block.call Dir.new(driver, path)
end
else
Dir.new driver, driver.tmp
end
end
end
|
#updated_at ⇒ Object
72
|
# File 'lib/vfs/entries/entry.rb', line 72
def updated_at; get :updated_at end
|