class Lita::WeeklySchedule

Attributes

cmd[R]
day[R]
id[R]
room_id[R]
time[R]
user_id[R]

Public Class Methods

new(id:, room_id:, user_id:, day:, time:, cmd:) click to toggle source
# File lib/lita/weekly_schedule.rb, line 5
def initialize(id:, room_id:, user_id:, day:, time:, cmd:)
  @id = id
  @room_id, @user_id = room_id, user_id
  @day, @time = day.to_s.to_sym, time.to_s
  @cmd = cmd.new if cmd
end

Public Instance Methods

human() click to toggle source
# File lib/lita/weekly_schedule.rb, line 35
def human
  "Weekly (id: #{@id}): #{@day} #{@time} - #{@cmd.name}"
end
name() click to toggle source
# File lib/lita/weekly_schedule.rb, line 12
def name
  @cmd.name
end
run(*args) click to toggle source
# File lib/lita/weekly_schedule.rb, line 16
def run(*args)
  @cmd.run(*args)
end
to_json() click to toggle source
# File lib/lita/weekly_schedule.rb, line 24
def to_json
  {
    id: @id,
    day: @day,
    time: @time,
    cmd: @cmd.name,
    user_id: @user_id,
    room_id: @room_id,
  }.to_json
end
valid?() click to toggle source
# File lib/lita/weekly_schedule.rb, line 20
def valid?
  room_id && user_id && valid_day? && valid_time? && valid_cmd?
end

Private Instance Methods

valid_cmd?() click to toggle source
# File lib/lita/weekly_schedule.rb, line 49
def valid_cmd?
  cmd.respond_to?(:run)
end
valid_day?() click to toggle source
# File lib/lita/weekly_schedule.rb, line 41
def valid_day?
  [:monday, :tuesday, :wednesday, :thursday, :friday, :saturday, :sunday].include?(day)
end
valid_time?() click to toggle source
# File lib/lita/weekly_schedule.rb, line 45
def valid_time?
  time.match(/\A\d\d:\d\d\Z/)
end