Class: Pacer::Pipes::MultiPipe

Inherits:
RubyPipe
  • Object
show all
Defined in:
lib/pacer/pipe/multi_pipe.rb

Instance Attribute Summary collapse

Attributes inherited from RubyPipe

#starts

Instance Method Summary collapse

Methods inherited from RubyPipe

#enablePath, #reset, #setStarts

Constructor Details

#initialize(enums) ⇒ MultiPipe

Returns a new instance of MultiPipe.



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/pacer/pipe/multi_pipe.rb', line 8

def initialize(enums)
  super()
  @pipes = enums.map do |e|
    if e.is_a? Pipe
      e
    else
      e.to_iterable
    end
  end
  setStarts MultiIterator.new(*pipes)
end

Instance Attribute Details

#pipesObject (readonly)

Returns the value of attribute pipes.



6
7
8
# File 'lib/pacer/pipe/multi_pipe.rb', line 6

def pipes
  @pipes
end

Instance Method Details

#+(enum) ⇒ Object



20
21
22
# File 'lib/pacer/pipe/multi_pipe.rb', line 20

def +(enum)
  MultiPipe.new(pipes + [enum])
end

#-(enum) ⇒ Object



24
25
26
# File 'lib/pacer/pipe/multi_pipe.rb', line 24

def -(enum)
  MultiPipe.new(pipes - [enum])
end

#getCurrentPathObject



28
29
30
# File 'lib/pacer/pipe/multi_pipe.rb', line 28

def getCurrentPath
  starts.getCurrentPath
end

#inspectObject



36
37
38
# File 'lib/pacer/pipe/multi_pipe.rb', line 36

def inspect
  "#<MultiPipe #{ pipes.count } sources>"
end

#processNextStartObject



32
33
34
# File 'lib/pacer/pipe/multi_pipe.rb', line 32

def processNextStart
  starts.next
end