class Pipeful::PipeBuffer


PIPE BUFFER

Public Class Methods

new(*els) click to toggle source
# File lib/pipeful.rb, line 129
def initialize(*els)
  @array = debuffer(els)
end
unwrap?(buffer) click to toggle source
# File lib/pipeful.rb, line 143
def self.unwrap?(buffer)
  return buffer unless buffer.is_a?(PipeBuffer)
  buffer.unwrap?
end

Public Instance Methods

to_s() click to toggle source
# File lib/pipeful.rb, line 133
def to_s
  "+#{@array}"
end
unwrap?() click to toggle source

used by Object#>> when returning a pipe buffer

# File lib/pipeful.rb, line 138
def unwrap?
  return first if size == 1
  self
end

Private Instance Methods

debuffer(arr) click to toggle source

prevents nested pipe buffer (but checks only one level deep)

# File lib/pipeful.rb, line 151
def debuffer(arr)
  arr.map do |el|
    el.is_a?(PipeBuffer) ? [*el] : [el]
  end.flatten(1)
end