Class: GemInstaller::OutputObserver

Inherits:
Object
  • Object
show all
Defined in:
lib/geminstaller/output_observer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeOutputObserver

TODO: GemRunnerProxy should raise exception if listener still has any leftover output when run is invoked.



5
6
7
8
# File 'lib/geminstaller/output_observer.rb', line 5

def initialize
  @stream = :stdout
  @listeners = []
end

Instance Attribute Details

#stream=(value) ⇒ Object (writeonly)

Sets the attribute stream

Parameters:

  • value

    the value to set the attribute stream to.



3
4
5
# File 'lib/geminstaller/output_observer.rb', line 3

def stream=(value)
  @stream = value
end

Instance Method Details

#flushObject



33
34
# File 'lib/geminstaller/output_observer.rb', line 33

def flush
end


19
20
21
22
23
# File 'lib/geminstaller/output_observer.rb', line 19

def print(output)
  @listeners.each do |listener|
    listener.notify(output, @stream)
  end
end

#puts(output) ⇒ Object



25
26
27
# File 'lib/geminstaller/output_observer.rb', line 25

def puts(output)
  print("#{output}\n")
end

#register(listener) ⇒ Object



10
11
12
13
# File 'lib/geminstaller/output_observer.rb', line 10

def register(listener)
  listener = [listener] unless listener.is_a?(Array)
  @listeners += listener
end

#tty?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/geminstaller/output_observer.rb', line 29

def tty?
  false
end

#unregister(listener) ⇒ Object



15
16
17
# File 'lib/geminstaller/output_observer.rb', line 15

def unregister(listener)
  @listeners.delete(listener)
end