Class: Lita::Adapters::IRC

Inherits:
Adapter
  • Object
show all
Defined in:
lib/lita/adapters/irc.rb,
lib/lita/adapters/irc/cinch_plugin.rb

Defined Under Namespace

Classes: CinchPlugin

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(robot) ⇒ IRC

Returns a new instance of IRC.



26
27
28
29
30
31
32
33
# File 'lib/lita/adapters/irc.rb', line 26

def initialize(robot)
  super

  @cinch = Cinch::Bot.new
  configure_cinch
  configure_logging
  register_plugin
end

Instance Attribute Details

#cinchObject (readonly)

Returns the value of attribute cinch.



24
25
26
# File 'lib/lita/adapters/irc.rb', line 24

def cinch
  @cinch
end

Instance Method Details

#join(room_id) ⇒ Object



40
41
42
# File 'lib/lita/adapters/irc.rb', line 40

def join(room_id)
  cinch.join(room_id)
end

#part(room_id) ⇒ Object



44
45
46
# File 'lib/lita/adapters/irc.rb', line 44

def part(room_id)
  cinch.part(room_id)
end

#runObject



35
36
37
38
# File 'lib/lita/adapters/irc.rb', line 35

def run
  Lita.logger.info("Connecting to IRC.")
  cinch.start
end

#send_messages(target, strings) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/lita/adapters/irc.rb', line 48

def send_messages(target, strings)
  if target.private_message?
    send_messages_to_user(target, strings)
  else
    send_messages_to_channel(target, strings)
  end
end

#set_topic(target, topic) ⇒ Object



56
57
58
59
60
61
# File 'lib/lita/adapters/irc.rb', line 56

def set_topic(target, topic)
  room = target.room
  channel = Cinch::Channel.new(target.room, cinch)
  Lita.logger.debug("Setting topic for channel #{room}: #{topic}")
  channel.topic = topic
end

#shut_downObject



63
64
65
66
67
# File 'lib/lita/adapters/irc.rb', line 63

def shut_down
  Lita.logger.info("Disconnecting from IRC.")
  cinch.quit
  robot.trigger(:disconnected)
end