class Yell::Adapters::Io

Constants

TTYColors

The possible unix log colors

Attributes

colors[RW]

Sets colored output on or off (default off)

@example Enable colors

colors = true

@example Disable colors

colors = false
sync[RW]

Sets the “sync mode” to true or false.

When true (default), every log event is immediately written to the file. When false, the log event is buffered internally.

Public Instance Methods

colorize!() click to toggle source

Shortcut to enable colors.

@example

colorize!
# File lib/yell/adapters/io.rb, line 36
def colorize!; @colors = true; end

Private Instance Methods

close!() click to toggle source

@overload close!

Calls superclass method Yell::Adapters::Base#close!
# File lib/yell/adapters/io.rb, line 75
def close!
  @stream.close if @stream.respond_to?(:close)
  @stream = nil

  super
end
inspectables() click to toggle source

@overload inspectables

Calls superclass method Yell::Adapters::Base#inspectables
# File lib/yell/adapters/io.rb, line 91
def inspectables
  super.concat [:formatter, :colors, :sync]
end
open!() click to toggle source

@overload open!

Calls superclass method Yell::Adapters::Base#open!
# File lib/yell/adapters/io.rb, line 67
def open!
  @stream.sync = self.sync if @stream.respond_to?(:sync)
  @stream.flush if @stream.respond_to?(:flush)

  super
end
setup!( options ) click to toggle source

@overload setup!( options )

Calls superclass method Yell::Adapters::Base#setup!
# File lib/yell/adapters/io.rb, line 42
def setup!( options )
  @stream = nil

  self.colors = Yell.__fetch__(options, :colors, default: false)
  self.formatter = Yell.__fetch__(options, :format, :formatter)
  self.sync = Yell.__fetch__(options, :sync, default: true)

  super
end
stream() click to toggle source

The IO stream

Adapter classes should provide their own implementation of this method.

# File lib/yell/adapters/io.rb, line 86
def stream
  synchronize { open! if @stream.nil?; @stream }
end
write!( event ) click to toggle source

@overload write!( event )

Calls superclass method Yell::Adapters::Base#write!
# File lib/yell/adapters/io.rb, line 53
def write!( event )
  message = formatter.call(event)

  # colorize if applicable
  if colors and color = TTYColors[event.level]
    message = color + message + TTYColors[-1]
  end

  stream.syswrite(message)

  super
end