From 50d091c896ec0f5faebdf33a7fbe3ae336890137 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Wed, 27 Mar 2013 18:41:13 +0100 Subject: [PATCH] Build $.delete, $.get and $.set depending on the extension type. --- lib/$.coffee | 69 ++++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/lib/$.coffee b/lib/$.coffee index 7cc2c1c7b..0c7814c21 100644 --- a/lib/$.coffee +++ b/lib/$.coffee @@ -201,11 +201,30 @@ $.extend $, Math.round size "#{size} #{['B', 'KB', 'MB', 'GB'][unit]}" -if GM_deleteValue? +<% if (type === 'crx') { %> + delete: (name) -> + localStorage.removeItem g.NAMESPACE + name + get: (name, defaultValue) -> + if value = localStorage.getItem g.NAMESPACE + name + JSON.parse value + else + defaultValue + set: (name, value) -> + localStorage.setItem g.NAMESPACE + name, JSON.stringify value +<% } else if (type === 'userjs') { %> +do -> + # http://www.opera.com/docs/userjs/specs/#scriptstorage + # http://www.opera.com/docs/userjs/using/#securepages + # The scriptStorage object is available only during + # the main User JavaScript thread, being therefore + # accessible only in the main body of the user script. + # To access the storage object later, keep a reference + # to the object. + {scriptStorage} = opera $.delete = (name) -> - GM_deleteValue g.NAMESPACE + name + delete scriptStorage[g.NAMESPACE + name] $.get = (name, defaultValue) -> - if value = GM_getValue g.NAMESPACE + name + if value = scriptStorage[g.NAMESPACE + name] JSON.parse value else defaultValue @@ -214,37 +233,19 @@ if GM_deleteValue? value = JSON.stringify value # for `storage` events localStorage.setItem name, value - GM_setValue name, value -else if window.opera - do -> - # http://www.opera.com/docs/userjs/specs/#scriptstorage - # http://www.opera.com/docs/userjs/using/#securepages - # >The scriptStorage object is available only during - # the main User JavaScript thread, being therefore - # accessible only in the main body of the user script. - # To access the storage object later, keep a reference - # to the object. - {scriptStorage} = opera - $.delete = (name) -> - delete scriptStorage[g.NAMESPACE + name] - $.get = (name, defaultValue) -> - if value = scriptStorage[g.NAMESPACE + name] - JSON.parse value - else - defaultValue - $.set = (name, value) -> - name = g.NAMESPACE + name - value = JSON.stringify value - # for `storage` events - localStorage.setItem name, value - scriptStorage[name] = value -else - $.delete = (name) -> - localStorage.removeItem g.NAMESPACE + name - $.get = (name, defaultValue) -> - if value = localStorage.getItem g.NAMESPACE + name + scriptStorage[name] = value +<% } else { %> + delete: (name) -> + GM_deleteValue g.NAMESPACE + name + get: (name, defaultValue) -> + if value = GM_getValue g.NAMESPACE + name JSON.parse value else defaultValue - $.set = (name, value) -> - localStorage.setItem g.NAMESPACE + name, JSON.stringify value + set: (name, value) -> + name = g.NAMESPACE + name + value = JSON.stringify value + # for `storage` events + localStorage.setItem name, value + GM_setValue name, value +<% } %>