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