Class: FakeFS::FakeFile

Inherits:
Object
  • Object
show all
Defined in:
lib/fakefs/fake/file.rb

Overview

Fake file class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = nil, parent = nil) ⇒ FakeFile

Returns a new instance of FakeFile.



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/fakefs/fake/file.rb', line 7

def initialize(name = nil, parent = nil)
  @name      = name
  @parent    = parent
  @inode     = FakeInode.new(self)
  @ctime     = Time.now
  @mtime     = @ctime
  @atime     = @ctime
  @birthtime = @ctime
  @mode      = 0o100000 + (0o666 - File.umask)
  @uid       = Process.uid
  @gid       = Process.gid
end

Instance Attribute Details

#atimeObject

Returns the value of attribute atime.



4
5
6
# File 'lib/fakefs/fake/file.rb', line 4

def atime
  @atime
end

#birthtimeObject (readonly)

Returns the value of attribute birthtime.



5
6
7
# File 'lib/fakefs/fake/file.rb', line 5

def birthtime
  @birthtime
end

#ctimeObject (readonly)

Returns the value of attribute ctime.



5
6
7
# File 'lib/fakefs/fake/file.rb', line 5

def ctime
  @ctime
end

#gidObject

Returns the value of attribute gid.



4
5
6
# File 'lib/fakefs/fake/file.rb', line 4

def gid
  @gid
end

#inodeObject

Returns the value of attribute inode.



20
21
22
# File 'lib/fakefs/fake/file.rb', line 20

def inode
  @inode
end

#modeObject

Returns the value of attribute mode.



4
5
6
# File 'lib/fakefs/fake/file.rb', line 4

def mode
  @mode
end

#mtimeObject

Returns the value of attribute mtime.



4
5
6
# File 'lib/fakefs/fake/file.rb', line 4

def mtime
  @mtime
end

#nameObject

Returns the value of attribute name.



4
5
6
# File 'lib/fakefs/fake/file.rb', line 4

def name
  @name
end

#parentObject

Returns the value of attribute parent.



4
5
6
# File 'lib/fakefs/fake/file.rb', line 4

def parent
  @parent
end

#uidObject

Returns the value of attribute uid.



4
5
6
# File 'lib/fakefs/fake/file.rb', line 4

def uid
  @uid
end

Instance Method Details

#clone(parent = nil) ⇒ Object



38
39
40
41
42
43
# File 'lib/fakefs/fake/file.rb', line 38

def clone(parent = nil)
  clone = super()
  clone.parent = parent if parent
  clone.inode  = inode.clone
  clone
end

#contentObject



22
23
24
# File 'lib/fakefs/fake/file.rb', line 22

def content
  @inode.content
end

#content=(str) ⇒ Object



26
27
28
# File 'lib/fakefs/fake/file.rb', line 26

def content=(str)
  @inode.content = str
end

#deleteObject



58
59
60
61
62
# File 'lib/fakefs/fake/file.rb', line 58

def delete
  inode.unlink(self)
  inode.free_inode_num
  parent.delete(self)
end

#entryObject



45
46
47
# File 'lib/fakefs/fake/file.rb', line 45

def entry
  self
end

#inspectObject



49
50
51
52
# File 'lib/fakefs/fake/file.rb', line 49

def inspect
  "(FakeFile name:#{name.inspect} " \
  "parent:#{parent.to_s.inspect} size:#{content.size})"
end


34
35
36
# File 'lib/fakefs/fake/file.rb', line 34

def link(other_file)
  @inode.link(other_file)
end


30
31
32
# File 'lib/fakefs/fake/file.rb', line 30

def links
  @inode.links
end

#to_sObject



54
55
56
# File 'lib/fakefs/fake/file.rb', line 54

def to_s
  File.join(parent.to_s, name)
end