Parent

Methods

Included Modules

Class/Module Index [+]

Quicksearch

Ramaze::Logger::Xosd

Informer for the XOSD notification system for X11.

You can install the ruby-bindings with:

gem install xosd.

Constants

DEFAULT
IGNORE

keys to ignore when setting the options to the instance.

QUEUE

Here new messages are pushed to eventually displaying them.

Attributes

options[RW]

Public Class Methods

new(options = {}) click to toggle source

Create a new instance, valid options are in DEFAULT. In the background a new thread will be running that checks the QUEUE and processes all messages that are being sent to it. This is done to make output nicer and readable.

# File lib/ramaze/log/xosd.rb, line 53
def initialize(options = {})
  @options = DEFAULT.merge(options)

  super(@options[:lines])

  @options.each do |key, value|
    next if IGNORE.include?(key)
    value = @options[:font_size] if key == :font
    send("#{key}=", value)
  end

  Thread.new(self) do |xosd|
    loop do
      items = []
      lines = xosd.options[:lines]
      items << QUEUE.shift until QUEUE.empty? or items.size >= lines

      unless items.empty?
        # pad up with empty lines to avoid dragging around old messages.
        items << [:info, ' '] until items.size >= lines

        items.each_with_index do |(tag, message), i|
        xosd.color = xosd.options[:colors][tag.to_sym]
        xosd.display(message, i)
        end
      end
      sleep xosd.options[:timeout]
    end
  end
end

Public Instance Methods

log(tag, *messages) click to toggle source

Pushes all messages it gets on the QUEUE for further processing.

# File lib/ramaze/log/xosd.rb, line 87
def log(tag, *messages)
  messages.each do |message|
    QUEUE << [tag, message]
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.