Class: ProcessExecuter::Destinations::Tee Private
- Inherits:
-
ProcessExecuter::DestinationBase
- Object
- ProcessExecuter::DestinationBase
- ProcessExecuter::Destinations::Tee
- Defined in:
- lib/process_executer/destinations/tee.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 destination for writing to multiple destinations
The destination is an array with the first element being :tee and the rest being the destinations.
Instance Attribute Summary collapse
-
#child_destinations ⇒ File
readonly
private
The opened file object.
Attributes inherited from ProcessExecuter::DestinationBase
Class Method Summary collapse
-
.handles?(destination) ⇒ Boolean
private
Determines if this class can handle the given destination.
Instance Method Summary collapse
-
#close
private
Closes the file if it's open.
-
#initialize(destination) ⇒ FilePathModePerms
constructor
private
Initializes a new file path with mode and permissions destination handler.
-
#write(data) ⇒ Integer
private
Writes data to the file.
Methods inherited from ProcessExecuter::DestinationBase
#compatible_with_monitored_pipe?, compatible_with_monitored_pipe?, #string
Constructor Details
#initialize(destination) ⇒ FilePathModePerms
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 with mode and permissions destination handler
Opens the file at the given path with the specified mode and permissions.
20 21 22 23 |
# File 'lib/process_executer/destinations/tee.rb', line 20 def initialize(destination) super @child_destinations = destination[1..].map { |dest| ProcessExecuter::Destinations.factory(dest) } end |
Instance Attribute Details
#child_destinations ⇒ File (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
28 29 30 |
# File 'lib/process_executer/destinations/tee.rb', line 28 def child_destinations @child_destinations 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
55 56 57 |
# File 'lib/process_executer/destinations/tee.rb', line 55 def self.handles?(destination) destination.is_a?(Array) && destination.size > 1 && destination[0] == :tee 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
47 48 49 |
# File 'lib/process_executer/destinations/tee.rb', line 47 def close child_destinations.each(&:close) 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
39 40 41 42 |
# File 'lib/process_executer/destinations/tee.rb', line 39 def write(data) super child_destinations.each { |dest| dest.write(data) } end |