Sha256: 67d343bf4af7a4d1c4752df28005b4c7bda37cb1dd1fbf63d849d1c0952f5e66

Contents?: true

Size: 875 Bytes

Versions: 5

Compression:

Stored size: 875 Bytes

Contents

require 'rubygems'
require 'IRC'
require 'cerberus/publisher/base'

class Cerberus::Publisher::IRC < Cerberus::Publisher::Base
  def self.publish(state, manager, options)
    irc_options = options[:publisher, :irc]
    raise "There is no channel provided for IRC publisher" unless irc_options[:channel]
    subject,body = Cerberus::Publisher::Base.formatted_message(state, manager, options)
    message = subject + "\n" + '*' * subject.length + "\n" + body


    channel = '#' + irc_options[:channel]
    bot = IRC.new(irc_options[:nick] || 'cerberus', irc_options[:server], irc_options[:port] || 6667)

    silence_stream(STDOUT) {
      IRCEvent.add_callback('endofmotd') { |event| 
        bot.add_channel(channel) 
        message.split("\n").each{|line|
          bot.send_message(channel, line)
        }
        bot.send_quit
      }
      bot.connect
    }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cerberus-0.3.6 lib/cerberus/publisher/irc.rb
cerberus-0.4.0 lib/cerberus/publisher/irc.rb
cerberus-0.4.3 lib/cerberus/publisher/irc.rb
cerberus-0.4.1 lib/cerberus/publisher/irc.rb
cerberus-0.4.2 lib/cerberus/publisher/irc.rb