Module: Julewire::Core::Destinations::Sink

Defined in:
lib/julewire/core/destinations/sink.rb

Class Method Summary collapse

Class Method Details

.reject_output_array!(output) ⇒ Object

Raises:

  • (ArgumentError)


22
23
24
25
26
# File 'lib/julewire/core/destinations/sink.rb', line 22

def reject_output_array!(output)
  return unless output.is_a?(Array)

  raise ArgumentError, "output arrays are transport adapter behavior; use destinations or an adapter output"
end

.validate_writeable!(output) ⇒ Object

Raises:

  • (ArgumentError)


16
17
18
19
20
# File 'lib/julewire/core/destinations/sink.rb', line 16

def validate_writeable!(output)
  return if output.respond_to?(:write)

  raise ArgumentError, "output must respond to #write"
end

.wrap(output, close_output: false) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/julewire/core/destinations/sink.rb', line 8

def wrap(output, close_output: false)
  reject_output_array!(output)
  return output if wrapped?(output)

  validate_writeable!(output)
  SynchronizedOutput.new(output, close_output: close_output)
end