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