class Lita::Updates::Commands::SetSchedule

Attributes

message[R]
redis[R]
robot[R]
user[R]

Public Class Methods

call(robot, redis, user, message) click to toggle source
# File lib/lita/updates/commands/set_schedule.rb, line 2
def self.call(robot, redis, user, message)
  new(robot, redis, user, message).call
end
new(robot, redis, user, message) click to toggle source
# File lib/lita/updates/commands/set_schedule.rb, line 6
def initialize(robot, redis, user, message)
  @robot   = robot
  @redis   = redis
  @user    = user
  @message = message
end

Public Instance Methods

call() click to toggle source
# File lib/lita/updates/commands/set_schedule.rb, line 13
def call
  data = message.split(/,?\s+/)

  write data[0], data[1..-1].collect(&:downcase)

  Lita::Updates::Commands::GetSchedule.call robot, redis, user
end

Private Instance Methods

schedule() click to toggle source
# File lib/lita/updates/commands/set_schedule.rb, line 25
def schedule
  @schedule ||= JSON.load schedule_raw
end
schedule_raw() click to toggle source
# File lib/lita/updates/commands/set_schedule.rb, line 29
def schedule_raw
  raw = redis.get("lita-updates:schedule")
  return "{}" if raw.nil? || raw.empty?

  raw
end
write(time, days) click to toggle source
# File lib/lita/updates/commands/set_schedule.rb, line 36
def write(time, days)
  schedule[user.mention_name] = {"time" => time, "days" => days}

  redis.set "lita-updates:schedule", JSON.dump(schedule)
end