class Lita::Adapters::IRC::CinchPlugin
Public Instance Methods
execute(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 17 def execute(m) body = get_body(m) source = get_source(m) message = Message.new(robot, body, source) message.command! unless source.room dispatch(message) end
on_connect(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 25 def on_connect(m) robot.trigger(:connected) end
on_invite(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 29 def on_invite(m) user = user_by_nick(m.user.nick) m.channel.join if robot.auth.user_is_admin?(user) end
on_nick_change(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 57 def on_nick_change(m) robot.trigger( :user_nick_changed, old_user: user_by_nick(m.prefix.gsub(/!.*/, '')), user: user_by_nick(m.user.nick), ) end
on_quit(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 50 def on_quit(m) robot.trigger( :user_disconnected, user: user_by_nick(m.user.nick), ) end
on_room_join(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 34 def on_room_join(m) robot.trigger( :user_joined_room, user: user_by_nick(m.user.nick), room: Lita::Room.create_or_update(m.channel.name, name: m.channel.name), ) end
on_room_part(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 42 def on_room_part(m) robot.trigger( :user_parted_room, user: user_by_nick(m.user.nick), room: Lita::Room.create_or_update(m.channel.name, name: m.channel.name), ) end
Private Instance Methods
dispatch(message)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 67 def dispatch(message) channel_text = " in #{message.source.room}" if message.source.room Lita.logger.debug(<<-MSG.chomp Dispatching message to Lita from #{message.source.user.name}#{channel_text}. MSG ) robot.receive(message) end
get_body(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 76 def get_body(m) if m.action? m.action_message else m.message end end
get_source(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 84 def get_source(m) user = user_by_nick(m.user.nick) channel = m.channel ? m.channel.name : nil Source.new(user: user, room: channel) end
robot()
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 90 def robot config[:robot] end
user_by_nick(nick)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 94 def user_by_nick(nick) Lita.logger.debug("Looking up user with nick: #{nick}.") User.find_by_name(nick) || User.create(SecureRandom.uuid, name: nick) end