ice_cubeを利用した時の内容を記述します。
インスタンスを作成する。
schedule = IceCube::Schedule.new(Time.local(2010, 7, 1))
ベーシックな方法
room = Room.new()
room.schedule = IceCube::Schedule.new(Date.today, duration: 1.day)
room.schedule.add_recurrence_rule IceCube::Rule.weekly.day(:friday,:saturday,:sunday)
room.save!
もっともベーシックな記述方法です。
指定した期間内で、対象としたい曜日を追加します。
checkin/out
チェックイン/アウトする日付を指定します。
check_in_ok = Date.today.next_week + 4.days
check_out_ok = check_in_ok + 2.days
u = User.find(1)
u.book! room, time_start: check_in_ok, time_end: check_out_ok
r = Room.new()
r.schedule = IceCube::Schedule.new(Time.now, duration: 10.hours)
r.schedule.add_recurrence_rule IceCube::Rule.weekly.day(:monday).hour_of_day(8)
r.save!
予約成功と失敗事例
booking成功時間と失敗時間を試します。
from_ok = Date.today.next_week + 9.hours
to_ok = from_ok + 2.hours
from_wrong = Date.today.next_week + 1.day + 9.hours
to_wrong = from_wrong + 2.hours
u = User.find(2)
u.book! r, time_start: from_ok, time_end: to_ok
u.book! r, time_start: from_wrong, time_end: to_wrong
room = Room.new()
room.schedule = IceCube::Schedule.new(Time.now, duration: 10.hours)
room.schedule.add_recurrence_rule IceCube::Rule.weekly.day(:monday).hour_of_day(8)
room.save!