Sha256: b4cdb093328f3c833420f404d15aa2611e21f32f50a2517f1c383d5fdb8a923d

Contents?: true

Size: 886 Bytes

Versions: 9

Compression:

Stored size: 886 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) do
      IRCEvent.add_callback('endofmotd') do |event| 
        bot.add_channel(channel) 
        message.split("\n").each do |line|
          bot.send_message(channel, line)
        end
        bot.send_quit
      end
      bot.connect
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
cerberus-0.7.6 lib/cerberus/publisher/irc.rb
cerberus-0.7.2 lib/cerberus/publisher/irc.rb
cerberus-0.7.5 lib/cerberus/publisher/irc.rb
cerberus-0.7 lib/cerberus/publisher/irc.rb
cerberus-0.4.4 lib/cerberus/publisher/irc.rb
cerberus-0.4.5.1 lib/cerberus/publisher/irc.rb
cerberus-0.4.5 lib/cerberus/publisher/irc.rb
cerberus-0.5 lib/cerberus/publisher/irc.rb
cerberus-0.6 lib/cerberus/publisher/irc.rb