module Earthquake::Output
Public Instance Methods
color_of(screen_name)
click to toggle source
# File lib/earthquake/output.rb, line 65 def color_of(screen_name) config[:colors][screen_name.delete("^0-9A-Za-z_").to_i(36) % config[:colors].size] end
insert(*messages) { || ... }
click to toggle source
# File lib/earthquake/output.rb, line 51 def insert(*messages) $stdout = StringIO.new puts messages yield if block_given? unless $stdout.string.empty? STDOUT.print "\e[0G\e[K#{$stdout.string}" Readline.refresh_line end ensure $stdout = STDOUT end
output(name = nil, &block)
click to toggle source
# File lib/earthquake/output.rb, line 17 def output(name = nil, &block) if block outputs.delete_if { |o| o[:name] == name } if name outputs << {:name => name, :block => block} else insert do while item = item_queue.shift item["_stream"] = true puts_items(item) end end end end
output_filter(&block)
click to toggle source
# File lib/earthquake/output.rb, line 9 def output_filter(&block) output_filters << block end
output_filters()
click to toggle source
# File lib/earthquake/output.rb, line 5 def output_filters @output_filters ||= [] end
outputs()
click to toggle source
# File lib/earthquake/output.rb, line 13 def outputs @outputs ||= [] end
puts_items(items)
click to toggle source
# File lib/earthquake/output.rb, line 31 def puts_items(items) mark_color = config[:colors].sample + 10 [items].flatten.reverse_each do |item| next if output_filters.any? { |f| f.call(item) == false } if item["text"] && !item["_stream"] item['_mark'] = ' '.c(mark_color) + item['_mark'].to_s end outputs.each do |o| begin o[:block].call(item) rescue => e error e end end end end