Guest User

Untitled

a guest
Jul 15th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.31 KB | None | 0 0
  1. module Locksmith
  2. extend self
  3.  
  4. Locked = Class.new(StandardError)
  5.  
  6. def acquire(page, user, timeout = 30)
  7. if key[page.id].setnx(user.id)
  8. key[page.id].expire(timeout)
  9. else
  10. raise Locked
  11. end
  12. end
  13.  
  14. def release(page)
  15. key[page.id].del
  16. end
  17.  
  18. def key
  19. Nest.new(:Locksmith)
  20. end
  21. end
Add Comment
Please, Sign In to add comment