class Ruboty::Handlers::GoodNight

Constants

BRAIN_NAMESPACE

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/ruboty/handlers/good_night.rb, line 8
def initialize(*args)
  super
  if robot.brain.data[BRAIN_NAMESPACE]
    trap_message(room)
  end
end

Public Instance Methods

greet(message) click to toggle source
# File lib/ruboty/handlers/good_night.rb, line 15
def greet(message)
  save(message)
  message.reply('まだ寝ないよ!')
end

Private Instance Methods

room() click to toggle source
# File lib/ruboty/handlers/good_night.rb, line 27
def room
  Ruboty::Message.new(robot.brain.data[BRAIN_NAMESPACE].merge(robot: robot))
end
save(message) click to toggle source
# File lib/ruboty/handlers/good_night.rb, line 22
def save(message)
  robot.brain.data[BRAIN_NAMESPACE] = message.original.except(:robot)
  trap_message(message)
end
trap_message(message) click to toggle source
# File lib/ruboty/handlers/good_night.rb, line 31
def trap_message(message)
  Signal.trap('TERM') do
    message.reply('おやすみ〜')
    Process.kill 'QUIT', Process.pid
  end
end