2005-01-24 18:52:04 +00:00
|
|
|
# Contains all the lock methods to be mixed in with the page
|
|
|
|
module PageLock
|
|
|
|
LOCKING_PERIOD = 30 * 60 # 30 minutes
|
|
|
|
|
2005-02-13 18:53:49 +00:00
|
|
|
attr_reader :locked_by
|
|
|
|
|
2005-01-24 18:52:04 +00:00
|
|
|
def lock(time, locked_by)
|
|
|
|
@locked_at, @locked_by = time, locked_by
|
|
|
|
end
|
|
|
|
|
|
|
|
def lock_duration(time)
|
|
|
|
((time - @locked_at) / 60).to_i unless @locked_at.nil?
|
|
|
|
end
|
|
|
|
|
|
|
|
def unlock
|
|
|
|
@locked_at = nil
|
|
|
|
end
|
|
|
|
|
|
|
|
def locked?(comparison_time)
|
|
|
|
@locked_at + LOCKING_PERIOD > comparison_time unless @locked_at.nil?
|
|
|
|
end
|
|
|
|
|
2005-01-15 20:26:54 +00:00
|
|
|
end
|