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

API:

  • private

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.

API:

  • private



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.

API:

  • private



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.

API:

  • private



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.

API:

  • private



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.

API:

  • private



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.

API:

  • private



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.

API:

  • private



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:

API:

  • private



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:

API:

  • private



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.

API:

  • private



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.

API:

  • private



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:

API:

  • private



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:

API:

  • private



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:

API:

  • private



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.

API:

  • private



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.

API:

  • private



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.

API:

  • private



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.

API:

  • private



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

def to_str
  to_path
end