diff options
| -rw-r--r-- | background_scripts/main.coffee | 16 | ||||
| -rw-r--r-- | lib/utils.coffee | 15 | ||||
| -rw-r--r-- | tests/unit_tests/utils_test.coffee | 8 |
3 files changed, 23 insertions, 16 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 56e3af07..20eb88d4 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -489,20 +489,6 @@ sendRequestToAllTabs = (args) -> for tab in window.tabs chrome.tabs.sendRequest(tab.id, args, null)) -# Compares two version strings (e.g. "1.1" and "1.5") and returns -# -1 if versionA is < versionB, 0 if they're equal, and 1 if versionA is > versionB. -compareVersions = (versionA, versionB) -> - versionA = versionA.split(".") - versionB = versionB.split(".") - for i in [0...(Math.max(versionA.length, versionB.length))] - a = parseInt(versionA[i] || 0, 10) - b = parseInt(versionB[i] || 0, 10) - if (a < b) - return -1 - else if (a > b) - return 1 - 0 - # # Returns true if the current extension version is greater than the previously recorded version in # localStorage, and false otherwise. @@ -511,7 +497,7 @@ shouldShowUpgradeMessage = -> # Avoid showing the upgrade notification when previousVersion is undefined, which is the case for new # installs. Settings.set("previousVersion", currentVersion) unless Settings.get("previousVersion") - compareVersions(currentVersion, Settings.get("previousVersion")) == 1 + Utils.compareVersions(currentVersion, Settings.get("previousVersion")) == 1 openOptionsPageInNewTab = -> chrome.tabs.getSelected(null, (tab) -> diff --git a/lib/utils.coffee b/lib/utils.coffee index c92fa1ff..e89d0aa2 100644 --- a/lib/utils.coffee +++ b/lib/utils.coffee @@ -111,6 +111,21 @@ Utils = # detects both literals and dynamically created strings isString: (obj) -> typeof obj == 'string' or obj instanceof String + + # Compares two version strings (e.g. "1.1" and "1.5") and returns + # -1 if versionA is < versionB, 0 if they're equal, and 1 if versionA is > versionB. + compareVersions: (versionA, versionB) -> + versionA = versionA.split(".") + versionB = versionB.split(".") + for i in [0...(Math.max(versionA.length, versionB.length))] + a = parseInt(versionA[i] || 0, 10) + b = parseInt(versionB[i] || 0, 10) + if (a < b) + return -1 + else if (a > b) + return 1 + 0 + # This creates a new function out of an existing function, where the new function takes fewer arguments. This # allows us to pass around functions instead of functions + a partial list of arguments. Function::curry = -> diff --git a/tests/unit_tests/utils_test.coffee b/tests/unit_tests/utils_test.coffee index 366133ac..e1aa32c7 100644 --- a/tests/unit_tests/utils_test.coffee +++ b/tests/unit_tests/utils_test.coffee @@ -44,9 +44,15 @@ context "convertToUrl", assert.equal "http://www.google.com/search?q=go%20ogle.com", Utils.convertToUrl("go ogle.com") context "Function currying", - should "Curry correctly", -> foo = (a, b) -> "#{a},#{b}" assert.equal "1,2", foo.curry()(1,2) assert.equal "1,2", foo.curry(1)(2) assert.equal "1,2", foo.curry(1,2)() + +context "compare versions", + should "compare correctly", -> + assert.equal 0, Utils.compareVersions("1.40.1", "1.40.1") + assert.equal -1, Utils.compareVersions("1.40.1", "1.40.2") + assert.equal -1, Utils.compareVersions("1.40.1", "1.41") + assert.equal 1, Utils.compareVersions("1.41", "1.40") |
