class Ruboty::Handlers::Attendance
Constants
- NAMESPACE
Private Instance Methods
check_duplicate(name)
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 23 def check_duplicate(name) last_time = scores[name] return false unless last_time now = Time.now last = Time.at(last_time) now.year == last.year && now.month == last.month && now.day == last.day end
check_limit()
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 33 def check_limit now = Time.now limit = Time.local( now.year, now.month, now.day, start_of_office_hours[0], start_of_office_hours[1], 00 ) now <= limit end
come_to_the_office(message)
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 14 def come_to_the_office(message) name = message[:name] if check_duplicate(name) duplicate(message) return end check_limit ? success(name, message) : failure(name, message) end
duplicate(message)
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 46 def duplicate(message) message.reply("Duplicate login!") message.reply("#{robot.name} zoi ごはんにする") end
failure(name, message)
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 51 def failure(name, message) scores[name] = Time.now.to_i message.reply("Login mission failure!\n今度はがんばりましょう") message.reply("#{name}--") end
scores()
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 67 def scores robot.brain.data[NAMESPACE] ||= {} end
start_of_office_hours()
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 63 def start_of_office_hours ENV["START_OF_OFFICE_HOURS"].split(":").map(&:to_i) end
success(name, message)
click to toggle source
# File lib/ruboty/handlers/attendance.rb, line 57 def success(name, message) scores[name] = Time.now.to_i message.reply("Login mission success!") message.reply("#{name}++") end