Class: Narou::StreamingLogger

Inherits:
StringIO
  • Object
show all
Includes:
LoggerModule
Defined in:
lib/web/streaminglogger.rb

Overview

標準出力をフックする

$stdout を介した出力は echo イベントとして全てのクライアントへ送信される

Instance Method Summary collapse

Methods included from LoggerModule

#capture, #save, #silence, #silent, #silent=, #strip_color, #write_console

Constructor Details

#initialize(push_server = nil) ⇒ StreamingLogger

Returns a new instance of StreamingLogger.



28
29
30
31
# File 'lib/web/streaminglogger.rb', line 28

def initialize(push_server = nil)
  super()
  @push_server = push_server
end

Instance Method Details

#push_streaming(str) ⇒ Object



37
38
39
40
41
# File 'lib/web/streaminglogger.rb', line 37

def push_streaming(str)
  unless @is_silent
    @push_server.send_all(echo: str) if @push_server
  end
end

#tty?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/web/streaminglogger.rb', line 33

def tty?
  false
end

#write(str) ⇒ Object



43
44
45
46
47
48
49
50
# File 'lib/web/streaminglogger.rb', line 43

def write(str)
  str = str.to_s
  if str.encoding == Encoding::ASCII_8BIT
    str.force_encoding(Encoding::UTF_8)
  end
  super(str)
  push_streaming(str)
end