Class: SubSpawn::Internal::FdSource

Inherits:
Object
  • Object
show all
Defined in:
lib/subspawn/fd_types.rb

Direct Known Subclasses

Basic, Close, Open

Defined Under Namespace

Classes: Basic, Close, File, Open, PTY, Pipe, Temp, Xchange

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dests, all_dests = dests) ⇒ FdSource

Returns a new instance of FdSource.

Raises:

  • (SpawnError)


3
4
5
6
7
# File 'lib/subspawn/fd_types.rb', line 3

def initialize(dests, all_dests=dests)
  @dests = dests
  @all_dests = all_dests
  raise SpawnError, "Can't provide :tty in this source list" if dests.include? :tty
end

Instance Attribute Details

#all_destsObject (readonly)

Returns the value of attribute all_dests.



8
9
10
# File 'lib/subspawn/fd_types.rb', line 8

def all_dests
  @all_dests
end

#destsObject (readonly)

Returns the value of attribute dests.



8
9
10
# File 'lib/subspawn/fd_types.rb', line 8

def dests
  @dests
end

Instance Method Details

#before?(o) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/subspawn/fd_types.rb', line 16

def before? o
  depends? o
end

#depends?(o) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/subspawn/fd_types.rb', line 13

def depends? o
  false
end

#destroys?(value) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/subspawn/fd_types.rb', line 10

def destroys? value
  @dests.include? value
end

#headsObject



25
26
27
# File 'lib/subspawn/fd_types.rb', line 25

def heads
  nil
end

#maxObject



19
20
21
# File 'lib/subspawn/fd_types.rb', line 19

def max
  @dests.max
end

#raw_apply(base, value) ⇒ Object



32
33
34
35
36
37
# File 'lib/subspawn/fd_types.rb', line 32

def raw_apply base, value
  @dests.each {|dest| 
    base.fd(dest, value)
  }
  nil # TODO: return the io for basics? would need to cache the fds
end

#tailsObject



28
29
30
# File 'lib/subspawn/fd_types.rb', line 28

def tails
  @dests
end

#to_dbgObject



22
23
24
# File 'lib/subspawn/fd_types.rb', line 22

def to_dbg
  [self.class, @dests]
end