class Lita::Adapters::IRC::CinchPlugin
Public Instance Methods
execute(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 13 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 21 def on_connect(m) robot.trigger(:connected) end
on_invite(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 25 def on_invite(m) user = user_by_nick(m.user.nick) m.channel.join if robot.auth.user_is_admin?(user) end
Private Instance Methods
dispatch(message)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 32 def dispatch(message) channel_text = " in #{message.source.room}" if message.source.room Lita.logger.debug("Dispatching message to Lita from #{message.source.user.name}#{channel_text}. ".chomp ) robot.receive(message) end
get_body(m)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 41 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 49 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 55 def robot config[:robot] end
user_by_nick(nick)
click to toggle source
# File lib/lita/adapters/irc/cinch_plugin.rb, line 59 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