Skip to content

Instantly share code, notes, and snippets.

@todoubled
Created December 9, 2012 20:16
Show Gist options
  • Save todoubled/4246809 to your computer and use it in GitHub Desktop.
Save todoubled/4246809 to your computer and use it in GitHub Desktop.
Helper to detect and write dependency versions in query string params.
# Get version strings from URL
jQueryVersion = /jquery=([\w\.]+)/.exec location.search
backboneVersion = /backbone=([\w\.]+)/.exec location.search
underscoreVersion = /underscore=([\w\.]+)/.exec location.search
mustacheVersion = /mustache=([\w\.]+)/.exec location.search
supportedVersions =
jquery: ['1.6.4', '1.8.1']
backbone: ['0.5.3', '0.9.2']
underscore: ['1.3.3']
mustache: ['0.5.0-dev']
setVersion = (dep, version) ->
possibleVersions = supportedVersions[dep]
versionIsSupported = version and possibleVersions.indexOf(version[1]) isnt -1
return version[1] if versionIsSupported
latestVersion = possibleVersions[possibleVersions.length - 1]
# Define `Array.prototype.indexOf` for browsers without it natively (IE)
if !Array::indexOf
Array::indexOf = (obj, start) ->
i = start or 0
j = @length
while i < j
return i if @[i] is obj
i++
-1
document.write "<script src=\"/vendor/jquery/jquery-#{setVersion 'jquery', jQueryVersion}.js\"><\/script>"
document.write "<script src=\"/vendor/underscore/underscore-#{setVersion 'underscore', underscoreVersion}.js\"><\/script>"
document.write "<script src=\"/vendor/mustache/mustache-#{setVersion 'mustache', mustacheVersion}.js\"><\/script>"
document.write "<script src=\"/vendor/backbone/backbone-#{setVersion 'backbone', backboneVersion}.js\"><\/script>"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment