Class: ProcessExecuter::Destinations::FilePath Private

Inherits:
ProcessExecuter::DestinationBase show all
Defined in:
lib/process_executer/destinations/file_path.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.

Handles file path destinations

Instance Attribute Summary collapse

Attributes inherited from ProcessExecuter::DestinationBase

#data_written, #destination

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ProcessExecuter::DestinationBase

#compatible_with_monitored_pipe?, compatible_with_monitored_pipe?, #string

Constructor Details

#initialize(destination) ⇒ FilePath

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.

Initializes a new file path destination handler

Opens the file at the given path for writing.

Parameters:

  • destination (String)

    the file path to write to

Raises:

  • (Errno::ENOENT)

    if the file path is invalid

[View source]

16
17
18
19
# File 'lib/process_executer/destinations/file_path.rb', line 16

def initialize(destination)
  super
  @file = File.open(destination, 'w', 0o644)
end

Instance Attribute Details

#fileFile (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.

The opened file object

Returns:

  • (File)

    the opened file


24
25
26
# File 'lib/process_executer/destinations/file_path.rb', line 24

def file
  @file
end

Class Method Details

.handles?(destination) ⇒ 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.

Determines if this class can handle the given destination

Parameters:

  • destination (Object)

    the destination to check

Returns:

  • (Boolean)

    true if destination is a String

[View source]

51
52
53
# File 'lib/process_executer/destinations/file_path.rb', line 51

def self.handles?(destination)
  destination.is_a? String
end

Instance Method Details

#close

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.

This method returns an undefined value.

Closes the file if it's open

[View source]

43
44
45
# File 'lib/process_executer/destinations/file_path.rb', line 43

def close
  file.close unless file.closed?
end

#write(data) ⇒ Integer

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.

Writes data to the file

Examples:

file_handler = ProcessExecuter::Destinations::FilePath.new("output.log")
file_handler.write("Log entry")

Parameters:

  • data (String)

    the data to write

Returns:

  • (Integer)

    the number of bytes written

Raises:

  • (IOError)

    if the file is closed

[View source]

35
36
37
38
# File 'lib/process_executer/destinations/file_path.rb', line 35

def write(data)
  super
  file.write data
end