Lungo.Data.Storage.coffee 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. ###
  2. Wrapper for using LocalStorage & SessionStorage (HTML5 Feature)
  3. @namespace Lungo.Data
  4. @class Storage
  5. @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  6. @author Guillermo Pascual <pasku@tapquo.com> || @pasku1
  7. ###
  8. Lungo.Data.Storage = do (lng = Lungo) ->
  9. STORAGE =
  10. PERSISTENT: "localStorage"
  11. SESSION: "sessionStorage"
  12. ###
  13. Wrapper for SessionStorage
  14. @method persistent
  15. @param {string} Key
  16. @param {object} Value
  17. @return {string} If no value assigned returns the value of established key
  18. ###
  19. persistent = (key, value) -> _handler STORAGE.PERSISTENT, key, value
  20. ###
  21. Wrapper for SessionStorage
  22. @method session
  23. @param {string} Key
  24. @param {object} Value
  25. @return {string} If no value assigned returns the value of established key
  26. ###
  27. session = (key, value) -> _handler STORAGE.SESSION, key, value
  28. _handler = (storage, key, value) ->
  29. storage = window[storage]
  30. if value
  31. _saveKey storage, key, value
  32. else if value is null
  33. _removeKey storage, key
  34. else
  35. _getKey storage, key
  36. _saveKey = (storage, key, value) ->
  37. value = JSON.stringify(value)
  38. storage.setItem key, value
  39. _removeKey = (storage, key) ->
  40. storage.removeItem key
  41. _getKey = (storage, key) ->
  42. value = storage.getItem(key)
  43. JSON.parse value
  44. session: session
  45. persistent: persistent