Class: Puppet::FileSystem::MemoryFile Private

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/file_system/memory_file.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

An in-memory file abstraction. Commonly used with Puppet::FileSystem::File#overlay

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, properties) ⇒ MemoryFile

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of MemoryFile.



26
27
28
29
30
31
32
# File 'lib/puppet/file_system/memory_file.rb', line 26

def initialize(path, properties)
  @path = path
  @properties = properties
  @children = (properties[:children] || []).collect do |child|
    child.duplicate_as(File.join(@path, child.path))
  end
end

Instance Attribute Details

#childrenObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



4
5
6
# File 'lib/puppet/file_system/memory_file.rb', line 4

def children
  @children
end

#pathObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



4
5
6
# File 'lib/puppet/file_system/memory_file.rb', line 4

def path
  @path
end

Class Method Details

.a_directory(path, children = []) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



18
19
20
21
22
23
24
# File 'lib/puppet/file_system/memory_file.rb', line 18

def self.a_directory(path, children = [])
  new(path,
      :exist? => true,
      :excutable? => true,
      :directory? => true,
      :children => children)
end

.a_missing_file(path) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



6
7
8
# File 'lib/puppet/file_system/memory_file.rb', line 6

def self.a_missing_file(path)
  new(path, :exist? => false, :executable? => false)
end

.a_regular_file_containing(path, content) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
# File 'lib/puppet/file_system/memory_file.rb', line 10

def self.a_regular_file_containing(path, content)
  new(path, :exist? => true, :executable? => false, :content => content)
end

.an_executable(path) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



14
15
16
# File 'lib/puppet/file_system/memory_file.rb', line 14

def self.an_executable(path)
  new(path, :exist? => true, :executable? => true)
end

Instance Method Details

#absolute?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


51
52
53
# File 'lib/puppet/file_system/memory_file.rb', line 51

def absolute?
  Pathname.new(path).absolute?
end

#directory?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


34
# File 'lib/puppet/file_system/memory_file.rb', line 34

def directory?; @properties[:directory?]; end

#duplicate_as(other_path) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



47
48
49
# File 'lib/puppet/file_system/memory_file.rb', line 47

def duplicate_as(other_path)
  self.class.new(other_path, @properties)
end

#each_line(&block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



38
39
40
# File 'lib/puppet/file_system/memory_file.rb', line 38

def each_line(&block)
  handle.each_line(&block)
end

#executable?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


36
# File 'lib/puppet/file_system/memory_file.rb', line 36

def executable?; @properties[:executable?]; end

#exist?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


35
# File 'lib/puppet/file_system/memory_file.rb', line 35

def exist?; @properties[:exist?]; end

#handleObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Raises:

  • (Errno::ENOENT)


42
43
44
45
# File 'lib/puppet/file_system/memory_file.rb', line 42

def handle
  raise Errno::ENOENT unless exist?
  StringIO.new(@properties[:content] || '')
end

#inspectObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



68
69
70
# File 'lib/puppet/file_system/memory_file.rb', line 68

def inspect
  "<Puppet::FileSystem::MemoryFile:#{to_s}>"
end

#to_pathObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



55
56
57
# File 'lib/puppet/file_system/memory_file.rb', line 55

def to_path
  path
end

#to_sObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



59
60
61
# File 'lib/puppet/file_system/memory_file.rb', line 59

def to_s
  to_path
end

#to_strObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Used by Ruby 1.8.7 file system abstractions when operating on Pathname like things.



64
65
66
# File 'lib/puppet/file_system/memory_file.rb', line 64

def to_str
  to_path
end