Class: Ramaze::Logger::Xosd
- Includes:
- Ramaze::Logging
- Defined in:
- lib/ramaze/log/xosd.rb
Overview
Informer for the XOSD notification system for X11.
You can install the ruby-bindings with:
gem install xosd.
Constant Summary collapse
- DEFAULT =
{ :font_size => 20, :font => "-*-*-*-*-*-*-%d-*-*-*-*-*-*-*", :align => 'center', :color => '#FFFFFF', :lines => 3, :valign => 'top', :timeout => 3, :outline_color => "#000000", :outline_width => 1, :vertical_offset => 20, :colors => { :error => "#FF0000", :info => "#00FF00", :warn => "#EAA61E", :debug => "#FFFF00" }, }
- IGNORE =
keys to ignore when setting the options to the instance.
[:colors, :font_size, :lines]
- QUEUE =
Here new messages are pushed to eventually displaying them.
Queue.new
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Xosd
constructor
Create a new instance, valid options are in DEFAULT.
-
#log(tag, *messages) ⇒ Object
pushes all messages it gets on the QUEUE for further processing.
Methods included from Ramaze::Logging
#debug, #debug?, #dev, #error, #info, #shutdown, #tag_log, #warn
Constructor Details
#initialize(options = {}) ⇒ Xosd
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.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/ramaze/log/xosd.rb', line 51 def initialize( = {}) @options = DEFAULT.merge() 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.[: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, ), i| xosd.color = xosd.[:colors][tag.to_sym] xosd.display(, i) end end sleep xosd.[:timeout] end end end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
17 18 19 |
# File 'lib/ramaze/log/xosd.rb', line 17 def @options end |